Class: AmountFormatter
- Inherits:
-
Object
- Object
- AmountFormatter
- Defined in:
- lib/amount_formatter.rb
Constant Summary collapse
- FORMAT_DEFAULT_ARGS =
{precision: 2}
Class Method Summary collapse
-
.format(number, args = {}) ⇒ Object
Returns the number as a formatted string.
- .locale_engine=(engine) ⇒ Object
Class Method Details
.format(number, args = {}) ⇒ Object
Returns the number as a formatted string.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/amount_formatter.rb', line 9 def self.format(number, args = {}) separator = args[:separator] || default_separator delimiter = args[:delimiter] || default_delimiter args = FORMAT_DEFAULT_ARGS.merge(args) number = number.to_f unless number.is_a?(Float) return sprintf("%.#{args[:precision].to_i}f", number).gsub(".", separator) if number < 1 && number > -1 number = sprintf("%.#{args[:precision].to_i}f", number).split(".") str = "" number[0].reverse.scan(/(.{1,3})/) do |match| if match[0] == "-" #This happens if the number is a negative number and we reach the minus-sign. str << match[0] else str << delimiter if str.length > 0 str << match[0] end end str = str.reverse str << "#{separator}#{number[1]}" if args[:precision] > 0 return str end |
.locale_engine=(engine) ⇒ Object
4 5 6 |
# File 'lib/amount_formatter.rb', line 4 def self.locale_engine=(engine) @locale_engine = engine end |