From e129c5673a99a09ae64759dafbe907aade16cf2b Mon Sep 17 00:00:00 2001
From: Joshua Peek <josh@joshpeek.com>
Date: Wed, 29 Jul 2009 21:59:02 -0500
Subject: Wrap up attribute method reset concerns in
 'undefine_attribute_methods'

---
 activerecord/lib/active_record/attribute_methods.rb | 5 +++++
 activerecord/lib/active_record/base.rb              | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

(limited to 'activerecord')

diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb
index ef510a1a2c..8370c212ca 100644
--- a/activerecord/lib/active_record/attribute_methods.rb
+++ b/activerecord/lib/active_record/attribute_methods.rb
@@ -79,6 +79,11 @@ module ActiveRecord
         end
       end
 
+      def undefine_attribute_methods
+        generated_methods.each { |name| undef_method(name) }
+        @generated_methods = nil
+      end
+
       # Checks whether the method is defined in the model or any of its subclasses
       # that also derive from Active Record.
       def instance_method_already_implemented?(method_name)
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index b64c76b558..b93dfaf987 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -1397,8 +1397,8 @@ module ActiveRecord #:nodoc:
       #    end
       #  end
       def reset_column_information
-        generated_methods.each { |name| undef_method(name) }
-        @column_names = @columns = @columns_hash = @content_columns = @dynamic_methods_hash = @generated_methods = @inheritance_column = nil
+        undefine_attribute_methods
+        @column_names = @columns = @columns_hash = @content_columns = @dynamic_methods_hash = @inheritance_column = nil
       end
 
       def reset_column_information_and_inheritable_attributes_for_all_subclasses#:nodoc:
-- 
cgit v1.2.3