Class: ActiveSupport::NumberHelper::NumberToRoundedConverter
Do not use. This class is for internal use only.
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
NumberConverter
|
|
Instance Chain:
self,
NumberConverter
|
|
Inherits: |
ActiveSupport::NumberHelper::NumberConverter
|
Defined in: | activesupport/lib/active_support/number_helper/number_to_rounded_converter.rb |
Constant Summary
NumberConverter
- Inherited
Class Attribute Summary
NumberConverter
- Inherited
Class Method Summary
NumberConverter
- Inherited
Instance Attribute Summary
NumberConverter
- Inherited
Instance Method Summary
- #convert
- #format_number(number) private
- #strip_insignificant_zeros private
NumberConverter
- Inherited
Constructor Details
This class inherits a constructor from ActiveSupport::NumberHelper::NumberConverter
Instance Method Details
#convert
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_to_rounded_converter.rb', line 11
def convert helper = RoundingHelper.new( ) rounded_number = helper.round(number) if precision = [:precision] if [:significant] && precision > 0 digits = helper.digit_count(rounded_number) precision -= digits precision = 0 if precision < 0 # don't let it be negative end formatted_string = if rounded_number.finite? s = rounded_number.to_s("F") a, b = s.split(".", 2) if precision != 0 b << "0" * precision a << "." a << b[0, precision] end a else # Infinity/NaN "%f" % rounded_number end else formatted_string = rounded_number end delimited_number = NumberToDelimitedConverter.convert(formatted_string, ) format_number(delimited_number) end
#format_number(number) (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_to_rounded_converter.rb', line 49
def format_number(number) if strip_insignificant_zeros escaped_separator = Regexp.escape( [:separator]) number.sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, "") else number end end
#strip_insignificant_zeros (private)
[ GitHub ]# File 'activesupport/lib/active_support/number_helper/number_to_rounded_converter.rb', line 45
def strip_insignificant_zeros [:strip_insignificant_zeros] end