Module: ActionView::Helpers::NumberHelper

Included in:
ActionView::Helpers
Defined in:
lib/action_view/helpers/number_helper.rb

Overview

Action View Number Helpers

Provides methods for converting numbers into formatted strings. Methods are provided for phone numbers, currency, percentage, precision, positional notation, file size, and pretty printing.

Most methods expect a number argument, and will return it unchanged if can’t be converted into a valid number.

Defined Under Namespace

Classes: InvalidNumberError

Instance Method Summary collapse

Instance Method Details

#number_to_currency(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_currency.

number_to_currency("1234")               # => "$1234.00"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_currency("12x34")              # => "$12x34"
number_to_currency("12x34", raise: true) # => InvalidNumberError


55
56
57
# File 'lib/action_view/helpers/number_helper.rb', line 55

def number_to_currency(number, options = {})
  delegate_number_helper_method(:number_to_currency, number, options)
end

#number_to_human(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_human.

number_to_human("1234")               # => "1.23 Thousand"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_human("12x34")              # => "12x34"
number_to_human("12x34", raise: true) # => InvalidNumberError


125
126
127
# File 'lib/action_view/helpers/number_helper.rb', line 125

def number_to_human(number, options = {})
  delegate_number_helper_method(:number_to_human, number, options)
end

#number_to_human_size(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_human_size.

number_to_human_size("1234")               # => "1.21 KB"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_human_size("12x34")              # => "12x34"
number_to_human_size("12x34", raise: true) # => InvalidNumberError


111
112
113
# File 'lib/action_view/helpers/number_helper.rb', line 111

def number_to_human_size(number, options = {})
  delegate_number_helper_method(:number_to_human_size, number, options)
end

#number_to_percentage(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_percentage.

number_to_percentage("99")               # => "99.000%"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_percentage("99x")              # => "99x%"
number_to_percentage("99x", raise: true) # => InvalidNumberError


69
70
71
# File 'lib/action_view/helpers/number_helper.rb', line 69

def number_to_percentage(number, options = {})
  delegate_number_helper_method(:number_to_percentage, number, options)
end

#number_to_phone(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_phone.

number_to_phone("1234567890")         # => "123-456-7890"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_phone("12x34")              # => "12x34"
number_to_phone("12x34", raise: true) # => InvalidNumberError


37
38
39
40
41
42
43
# File 'lib/action_view/helpers/number_helper.rb', line 37

def number_to_phone(number, options = {})
  return unless number
  options = options.symbolize_keys

  parse_float(number, true) if options.delete(:raise)
  ERB::Util.html_escape(ActiveSupport::NumberHelper.number_to_phone(number, options))
end

#number_with_delimiter(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_delimited.

number_with_delimiter("1234")               # => "1,234"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_with_delimiter("12x34")              # => "12x34"
number_with_delimiter("12x34", raise: true) # => InvalidNumberError


83
84
85
# File 'lib/action_view/helpers/number_helper.rb', line 83

def number_with_delimiter(number, options = {})
  delegate_number_helper_method(:number_to_delimited, number, options)
end

#number_with_precision(number, options = {}) ⇒ Object

Delegates to ActiveSupport::NumberHelper#number_to_rounded.

number_with_precision("1234")               # => "1234.000"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_with_precision("12x34")              # => "12x34"
number_with_precision("12x34", raise: true) # => InvalidNumberError


97
98
99
# File 'lib/action_view/helpers/number_helper.rb', line 97

def number_with_precision(number, options = {})
  delegate_number_helper_method(:number_to_rounded, number, options)
end