Class: ActiveSupport::NumberHelper::NumberConverter
Do not use. This class is for internal use only.
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Inherits: | Object |
Defined in: | activesupport/lib/active_support/number_helper/number_converter.rb |
Constant Summary
-
DEFAULTS =
# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 21{ # Used in number_to_delimited # These are also the defaults for 'currency', 'percentage', 'precision', and 'human' format: { # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5) separator: ".", # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three) delimiter: ",", # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00) precision: 3, # If set to true, precision will mean the number of significant digits instead # of the number of decimal digits (1234 with precision 2 becomes 1200, 1.23543 becomes 1.2) significant: false, # If set, the zeros after the decimal separator will always be stripped (e.g.: 1.200 will be 1.2) strip_insignificant_zeros: false }, # Used in number_to_currency currency: { format: { format: "%u%n", negative_format: "-%u%n", unit: "$", # These five are to override number.format and are optional separator: ".", delimiter: ",", precision: 2, significant: false, strip_insignificant_zeros: false } }, # Used in number_to_percentage percentage: { format: { delimiter: "", format: "%n%" } }, # Used in number_to_rounded precision: { format: { delimiter: "" } }, # Used in number_to_human_size and number_to_human human: { format: { # These five are to override number.format and are optional delimiter: "", precision: 3, significant: true, strip_insignificant_zeros: true }, # Used in number_to_human_size storage_units: { # Storage units output formatting. # %u is the storage unit, %n is the number (default: 2 MB) format: "%n %u", units: { byte: "Bytes", kb: "KB", mb: "MB", gb: "GB", tb: "TB" } }, # Used in number_to_human decimal_units: { format: "%n %u", # Decimal units output formatting # By default we will only quantify some of the exponents # but the commented ones might be defined or overridden # by the user. units: { # femto: Quadrillionth # pico: Trillionth # nano: Billionth # micro: Millionth # mili: Thousandth # centi: Hundredth # deci: Tenth unit: "", # ten: # one: Ten # other: Tens # hundred: Hundred thousand: "Thousand", million: "Million", billion: "Billion", trillion: "Trillion", quadrillion: "Quadrillion" } } } }
Class Attribute Summary
Class Method Summary
Instance Attribute Summary
- #namespace rw
- #namespace? ⇒ Boolean rw
- #number readonly
- #opts readonly
- #validate_float rw
- #validate_float? ⇒ Boolean rw
Instance Method Summary
- #execute
- #default_format_options private
- #default_value(key) private
- #format_options private
- #i18n_format_options private
- #options private
- #translate_in_locale(key, **i18n_options) private
- #translate_number_value_with_default(key, **i18n_options) private
- #valid_bigdecimal private
Constructor Details
.new(number, options) ⇒ NumberConverter
Class Attribute Details
.namespace (rw)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 14
class_attribute :namespace
.namespace? ⇒ Boolean
(rw)
[ GitHub ]
# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 14
class_attribute :namespace
.validate_float (rw)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 17
class_attribute :validate_float
.validate_float? ⇒ Boolean
(rw)
[ GitHub ]
# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 17
class_attribute :validate_float
Class Method Details
.convert(number, options)
[ GitHub ]Instance Attribute Details
#namespace (rw)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 14
class_attribute :namespace
#namespace? ⇒ Boolean
(rw)
[ GitHub ]
# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 14
class_attribute :namespace
#number (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 19
attr_reader :number, :opts
#opts (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 19
attr_reader :number, :opts
#validate_float (rw)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 17
class_attribute :validate_float
#validate_float? ⇒ Boolean
(rw)
[ GitHub ]
# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 17
class_attribute :validate_float
Instance Method Details
#default_format_options (private)
[ GitHub ]#default_value(key) (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 174
def default_value(key) key.split(".").reduce(DEFAULTS) { |defaults, k| defaults[k.to_sym] } end
#execute
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 130
def execute if !number nil elsif validate_float? && !valid_bigdecimal number else convert end end
#format_options (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 145
def .merge!( ) end
#i18n_format_options (private)
[ GitHub ]#options (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 141
def @options ||= .merge(opts) end
#translate_in_locale(key, **i18n_options) (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 170
def translate_in_locale(key, ** ) translate_number_value_with_default(key, locale: [:locale], ** ) end
#translate_number_value_with_default(key, **i18n_options) (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_converter.rb', line 166
def translate_number_value_with_default(key, ** ) I18n.translate(key, default: default_value(key), scope: :number, ** ) end