Module ActionView::Helpers::NumberHelper
In: vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb

Provides methods for converting a number into a formatted string that currently represents one of the following forms: phone number, percentage, money, or precision level.

Methods

Public Instance methods

human_size(size)

Formats a number into a currency string. The options hash can be used to customize the format of the output. The number can contain a level of precision using the precision key; default is 2 The currency type can be set using the unit key; default is "$" The unit separator can be set using the separator key; default is "." The delimiter can be set using the delimiter key; default is "," Examples:

   number_to_currency(1234567890.50)     => $1,234,567,890.50
   number_to_currency(1234567890.506)    => $1,234,567,890.51
   number_to_currency(1234567890.50, {:unit => "£", :separator => ",", :delimiter => ""}) => £1234567890,50

[Source]

    # File vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb, line 36
36:       def number_to_currency(number, options = {})
37:         options = options.stringify_keys
38:         precision, unit, separator, delimiter = options.delete("precision") { 2 }, options.delete("unit") { "$" }, options.delete("separator") { "." }, options.delete("delimiter") { "," }
39:         separator = "" unless precision > 0
40:         begin
41:           parts = number_with_precision(number, precision).split('.')
42:           unit + number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s
43:         rescue
44:           number
45:         end
46:       end

Returns a formatted-for-humans file size.

Examples:

  human_size(123)          => 123 Bytes
  human_size(1234)         => 1.2 KB
  human_size(12345)        => 12.1 KB
  human_size(1234567)      => 1.2 MB
  human_size(1234567890)   => 1.1 GB

[Source]

    # File vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb, line 86
86:       def number_to_human_size(size)
87:         case 
88:           when size == 1        : '1 Byte'
89:           when size < 1.kilobyte: '%d Bytes' % size
90:           when size < 1.megabyte: '%.1f KB'  % (size / 1.0.kilobyte)
91:           when size < 1.gigabyte: '%.1f MB'  % (size / 1.0.megabyte)
92:           when size < 1.terabyte: '%.1f GB'  % (size / 1.0.gigabyte)
93:           else                    '%.1f TB'  % (size / 1.0.terabyte)
94:         end.sub('.0', '')
95:       rescue
96:         nil
97:       end

Formats a number as into a percentage string. The options hash can be used to customize the format of the output. The number can contain a level of precision using the precision key; default is 3 The unit separator can be set using the separator key; default is "." Examples:

  number_to_percentage(100)    => 100.000%
  number_to_percentage(100, {:precision => 0}) => 100%
  number_to_percentage(302.0574, {:precision => 2})  => 302.06%

[Source]

    # File vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb, line 55
55:       def number_to_percentage(number, options = {})
56:         options = options.stringify_keys
57:         precision, separator = options.delete("precision") { 3 }, options.delete("separator") { "." }
58:         begin
59:           number = number_with_precision(number, precision)
60:           parts = number.split('.')
61:           if parts.at(1).nil?
62:             parts[0] + "%"
63:           else
64:             parts[0] + separator + parts[1].to_s + "%"
65:           end
66:         rescue
67:           number
68:         end
69:       end

Formats a number into a US phone number string. The options can be a hash used to customize the format of the output. The area code can be surrounded by parentheses by setting +:area_code+ to true; default is false The delimiter can be set using +:delimiter+; default is "-" Examples:

  number_to_phone(1235551234)   => 123-555-1234
  number_to_phone(1235551234, {:area_code => true})   => (123) 555-1234
  number_to_phone(1235551234, {:delimiter => " "})    => 123 555 1234
  number_to_phone(1235551234, {:area_code => true, :extension => 555})  => (123) 555-1234 x 555

[Source]

    # File vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb, line 14
14:       def number_to_phone(number, options = {})
15:         options   = options.stringify_keys
16:         area_code = options.delete("area_code") { false }
17:         delimiter = options.delete("delimiter") { "-" }
18:         extension = options.delete("extension") { "" }
19:         begin
20:           str = area_code == true ? number.to_s.gsub(/([0-9]{3})([0-9]{3})([0-9]{4})/,"(\\1) \\2#{delimiter}\\3") : number.to_s.gsub(/([0-9]{3})([0-9]{3})([0-9]{4})/,"\\1#{delimiter}\\2#{delimiter}\\3")
21:           extension.to_s.strip.empty? ? str : "#{str} x #{extension.to_s.strip}"
22:         rescue
23:           number
24:         end
25:       end

Formats a number with a delimiter. Example:

   number_with_delimiter(12345678) => 12,345,678

[Source]

    # File vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb, line 74
74:       def number_with_delimiter(number, delimiter=",")
75:         number.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
76:       end

Formats a number with a level of precision. Example:

   number_with_precision(111.2345) => 111.235

[Source]

     # File vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb, line 104
104:       def number_with_precision(number, precision=3)
105:         sprintf("%01.#{precision}f", number)
106:       end

[Validate]