diff options
| -rw-r--r-- | activesupport/lib/active_support/core_ext/big_decimal/conversions.rb | 13 | ||||
| -rw-r--r-- | activesupport/lib/active_support/core_ext/numeric/conversions.rb | 28 | 
2 files changed, 25 insertions, 16 deletions
diff --git a/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb b/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb index 843c592669..234283e792 100644 --- a/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb +++ b/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb @@ -3,14 +3,13 @@ require 'bigdecimal/util'  class BigDecimal    DEFAULT_STRING_FORMAT = 'F' -  def to_formatted_s(*args) -    if args[0].is_a?(Symbol) -      super +  alias_method :to_default_s, :to_s + +  def to_s(format = nil, options = nil) +    if format.is_a?(Symbol) +      to_formatted_s(format, options || {})      else -      format = args[0] || DEFAULT_STRING_FORMAT -      _original_to_s(format) +      to_default_s(format || DEFAULT_STRING_FORMAT)      end    end -  alias_method :_original_to_s, :to_s -  alias_method :to_s, :to_formatted_s  end diff --git a/activesupport/lib/active_support/core_ext/numeric/conversions.rb b/activesupport/lib/active_support/core_ext/numeric/conversions.rb index 6d3635c69a..0c8ff79237 100644 --- a/activesupport/lib/active_support/core_ext/numeric/conversions.rb +++ b/activesupport/lib/active_support/core_ext/numeric/conversions.rb @@ -118,18 +118,28 @@ class Numeric      end    end -  [Float, Fixnum, Bignum, BigDecimal].each do |klass| -    klass.send(:alias_method, :to_default_s, :to_s) - -    klass.send(:define_method, :to_s) do |*args| -      if args[0].is_a?(Symbol) -        format = args[0] -        options = args[1] || {} +  [Fixnum, Bignum].each do |klass| +    klass.class_eval do +      alias_method :to_default_s, :to_s +      def to_s(base_or_format = 10, options = nil) +        if base_or_format.is_a?(Symbol) +          to_formatted_s(base_or_format, options || {}) +        else +          to_default_s(base_or_format) +        end +      end +    end +  end -        self.to_formatted_s(format, options) +  Float.class_eval do +    alias_method :to_default_s, :to_s +    def to_s(*args) +      if args.empty? +        to_default_s        else -        to_default_s(*args) +        to_formatted_s(*args)        end      end    end +  end  | 
