mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
665 B
33 lines
665 B
# frozen_string_literal: true
|
|
|
|
module NumberUtils
|
|
FORMAT_LOCALES = {
|
|
'dot' => 'de',
|
|
'space' => 'fr',
|
|
'comma' => 'en',
|
|
'usd' => 'en',
|
|
'eur' => 'fr',
|
|
'gbp' => 'en'
|
|
}.freeze
|
|
|
|
CURRENCY_SYMBOLS = {
|
|
'usd' => '$',
|
|
'eur' => '€',
|
|
'gbp' => '£'
|
|
}.freeze
|
|
|
|
module_function
|
|
|
|
def format_number(number, format)
|
|
locale = FORMAT_LOCALES[format]
|
|
|
|
if CURRENCY_SYMBOLS[format]
|
|
ApplicationController.helpers.number_to_currency(number, locale:, precision: 2, unit: CURRENCY_SYMBOLS[format])
|
|
elsif locale
|
|
ApplicationController.helpers.number_with_delimiter(number, locale:)
|
|
else
|
|
number
|
|
end
|
|
end
|
|
end
|