Changeset 9052
- Timestamp:
- 03/17/08 22:08:25 (2 months ago)
- Files:
-
- trunk/actionpack/CHANGELOG (modified) (1 diff)
- trunk/actionpack/lib/action_view/helpers/number_helper.rb (modified) (3 diffs)
- trunk/actionpack/test/template/number_helper_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/actionpack/CHANGELOG
r9030 r9052 1 1 *SVN* 2 3 * Added :format option to NumberHelper#number_to_currency to enable better localization support #11149 [lylo] 2 4 3 5 * Fixed that TextHelper#excerpt would include one character too many #11268 [Irfy] trunk/actionpack/lib/action_view/helpers/number_helper.rb
r8774 r9052 55 55 # * <tt>:separator</tt> - Sets the separator between the units (defaults to "."). 56 56 # * <tt>:delimiter</tt> - Sets the thousands delimiter (defaults to ","). 57 # * <tt>:format</tt> - Sets the format of the output string (defaults to "%u%n"). The field types are: 58 # 59 # %u The currency unit 60 # %n The number 57 61 # 58 62 # ==== Examples … … 63 67 # number_to_currency(1234567890.50, :unit => "£", :separator => ",", :delimiter => "") 64 68 # # => £1234567890,50 69 # number_to_currency(1234567890.50, :unit => "£", :separator => ",", :delimiter => "", :format => "%n %u") 70 # # => 1234567890,50 £ 65 71 def number_to_currency(number, options = {}) 66 72 options = options.stringify_keys … … 69 75 separator = precision > 0 ? options["separator"] || "." : "" 70 76 delimiter = options["delimiter"] || "," 77 format = options["format"] || "%u%n" 71 78 72 79 begin 73 80 parts = number_with_precision(number, precision).split('.') 74 unit + number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s81 format.gsub(/%n/, number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s).gsub(/%u/, unit) 75 82 rescue 76 83 number trunk/actionpack/test/template/number_helper_test.rb
r8774 r9052 26 26 assert_equal("£1234567890,50", number_to_currency(1234567890.50, {:unit => "£", :separator => ",", :delimiter => ""})) 27 27 assert_equal("$1,234,567,890.50", number_to_currency("1234567890.50")) 28 assert_equal("1,234,567,890.50 Kč", number_to_currency("1234567890.50", {:unit => "Kč", :format => "%n %u"})) 28 29 assert_equal("$x.", number_to_currency("x")) 29 30 assert_nil number_to_currency(nil)