mirror of
https://github.com/docusealco/docuseal.git
synced 2026-06-23 04:10:11 +00:00
37 lines
789 B
Ruby
37 lines
789 B
Ruby
# 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:)
|
||
elsif format == 'percent'
|
||
"#{number}%"
|
||
elsif format == 'percent_space'
|
||
"#{number.to_s.tr('.', ',')} %"
|
||
else
|
||
number
|
||
end
|
||
end
|
||
end
|