33 lines
665 B
Ruby
33 lines
665 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:)
|
|
else
|
|
number
|
|
end
|
|
end
|
|
end
|