Module: ActiveSupport::CoreExtensions::BigDecimal::Conversions
- Included in:
- BigDecimal
- Defined in:
- lib/active_support/core_ext/bigdecimal/conversions.rb
Class Method Summary collapse
-
.included(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
:nodoc:
7 8 9 10 11 12 |
# File 'lib/active_support/core_ext/bigdecimal/conversions.rb', line 7 def self.included(base) #:nodoc: base.instance_eval do alias_method :_original_to_s, :to_s alias_method :to_s, :to_formatted_s end end |
Instance Method Details
#to_formatted_s(format = "F") ⇒ Object
14 15 16 |
# File 'lib/active_support/core_ext/bigdecimal/conversions.rb', line 14 def to_formatted_s(format="F") _original_to_s(format) end |
#to_yaml(opts = {}) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/active_support/core_ext/bigdecimal/conversions.rb', line 19 def to_yaml( opts = {} ) YAML::quick_emit( nil, opts ) do |out| # This emits the number without any scientific notation. # I prefer it to using self.to_f.to_s, which would lose precision. # # Note that YAML allows that when reconsituting floats # to native types, some precision may get lost. # There is no full precision real YAML tag that I am aware of. str = self.to_s if str == "Infinity" str = ".Inf" elsif str == "-Infinity" str = "-.Inf" elsif str == "NaN" str = ".NaN" end out.scalar( "tag:yaml.org,2002:float", str, :plain ) end end |