Ticket #7892: number_helper_added_unitside_option.diff
| File number_helper_added_unitside_option.diff, 1.9 kB (added by HappyCoder, 2 years ago) |
|---|
-
actionpack/lib/action_view/helpers/number_helper.rb
old new 44 44 # in the +options+ hash. 45 45 # * <tt>:precision</tt> - Sets the level of precision, defaults to 2 46 46 # * <tt>:unit</tt> - Sets the denomination of the currency, defaults to "$" 47 # * <tt>:unitside</tt> - Sets the position of the unit, defaults to "left" 47 48 # * <tt>:separator</tt> - Sets the separator between the units, defaults to "." 48 49 # * <tt>:delimiter</tt> - Sets the thousands delimiter, defaults to "," 49 50 # … … 52 53 # number_to_currency(1234567890.506, :precision => 3) => $1,234,567,890.506 53 54 # number_to_currency(1234567890.50, :unit => "£", :separator => ",", :delimiter => "") 54 55 # => £1234567890,50 56 # number_to_currency(15.5, :unit => " kr.", :unitside => "right") => 15.5 kr. 55 57 def number_to_currency(number, options = {}) 56 58 options = options.stringify_keys 57 59 precision = options["precision"] || 2 58 60 unit = options["unit"] || "$" 61 unitside = options["unitside"] || "left" 59 62 separator = precision > 0 ? options["separator"] || "." : "" 60 63 delimiter = options["delimiter"] || "," 61 64 62 65 begin 63 66 parts = number_with_precision(number, precision).split('.') 64 unit + number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s 67 if unitside == "left": 68 unit + number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s 69 elsif unitside == "right": 70 number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s + unit 71 end 65 72 rescue 66 73 number 67 74 end