From 005b40194e9103f5c52434334b5f3b5028cbe813 Mon Sep 17 00:00:00 2001
From: Jeremy Kemper <jeremy@bitsweat.net>
Date: Sat, 21 Mar 2009 03:33:07 -0700
Subject: Convert bigdecimal extension modules to class reopens

---
 .../lib/active_support/core_ext/big_decimal.rb     |  4 +-
 .../core_ext/big_decimal/conversions.rb            | 50 +++++++++-------------
 2 files changed, 21 insertions(+), 33 deletions(-)

(limited to 'activesupport/lib')

diff --git a/activesupport/lib/active_support/core_ext/big_decimal.rb b/activesupport/lib/active_support/core_ext/big_decimal.rb
index d49587d861..8143113cfa 100644
--- a/activesupport/lib/active_support/core_ext/big_decimal.rb
+++ b/activesupport/lib/active_support/core_ext/big_decimal.rb
@@ -1,3 +1 @@
-require 'active_support/core_ext/util'
-require 'bigdecimal'
-ActiveSupport.core_ext BigDecimal, %w(conversions)
+require 'active_support/core_ext/big_decimal/conversions'
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 bc9d578f38..f7f03f4d95 100644
--- a/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb
@@ -1,37 +1,27 @@
+require 'bigdecimal'
 require 'yaml'
 
-module ActiveSupport #:nodoc:
-  module CoreExtensions #:nodoc:
-    module BigDecimal #:nodoc:
-      module Conversions
-        DEFAULT_STRING_FORMAT = 'F'.freeze
-        YAML_TAG = 'tag:yaml.org,2002:float'.freeze
-        YAML_MAPPING = { 'Infinity' => '.Inf', '-Infinity' => '-.Inf', 'NaN' => '.NaN' }
+class BigDecimal
+  YAML_TAG = 'tag:yaml.org,2002:float'
+  YAML_MAPPING = { 'Infinity' => '.Inf', '-Infinity' => '-.Inf', 'NaN' => '.NaN' }
 
-        def self.included(base) #:nodoc:
-          base.class_eval do
-            alias_method :_original_to_s, :to_s
-            alias_method :to_s, :to_formatted_s
+  yaml_as YAML_TAG
 
-            yaml_as YAML_TAG
-          end
-        end
-
-        def to_formatted_s(format = DEFAULT_STRING_FORMAT)
-          _original_to_s(format)
-        end
-
-        # This emits the number without any scientific notation.
-        # This is better than self.to_f.to_s since it doesn't lose precision.
-        #
-        # Note that reconstituting YAML floats to native floats may lose precision.
-        def to_yaml(opts = {})
-          YAML.quick_emit(nil, opts) do |out|
-            string = to_s
-            out.scalar(YAML_TAG, YAML_MAPPING[string] || string, :plain)
-          end
-        end
-      end
+  # This emits the number without any scientific notation.
+  # This is better than self.to_f.to_s since it doesn't lose precision.
+  #
+  # Note that reconstituting YAML floats to native floats may lose precision.
+  def to_yaml(opts = {})
+    YAML.quick_emit(nil, opts) do |out|
+      string = to_s
+      out.scalar(YAML_TAG, YAML_MAPPING[string] || string, :plain)
     end
   end
+
+  DEFAULT_STRING_FORMAT = 'F'
+  def to_formatted_s(format = DEFAULT_STRING_FORMAT)
+    _original_to_s(format)
+  end
+  alias_method :_original_to_s, :to_s
+  alias_method :to_s, :to_formatted_s
 end
-- 
cgit v1.2.3