aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/builder/has_many.rb
diff options
context:
space:
mode:
authorJosh Susser <josh@hasmanythrough.com>2011-11-27 14:15:40 -0800
committerJosh Susser <josh@hasmanythrough.com>2011-11-27 14:15:40 -0800
commit124c97fbe201f810d77f807ce69f37148e903c44 (patch)
treeaa76767b9aadc5f60e6a25fbf5ae4b82eef4a033 /activerecord/lib/active_record/associations/builder/has_many.rb
parent10834e975a54b63a07896cb8a6a16c336e20a792 (diff)
downloadrails-124c97fbe201f810d77f807ce69f37148e903c44.tar.gz
rails-124c97fbe201f810d77f807ce69f37148e903c44.tar.bz2
rails-124c97fbe201f810d77f807ce69f37148e903c44.zip
avoid warnings
This change uses Module.redefine_method as defined in ActiveSupport. Making Module.define_method public would be as clean in the code, and would also emit warnings when redefining an association. That is pretty messy given current tests, so I'm leaving it for someone else to decide what approach is better.
Diffstat (limited to 'activerecord/lib/active_record/associations/builder/has_many.rb')
-rw-r--r--activerecord/lib/active_record/associations/builder/has_many.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations/builder/has_many.rb b/activerecord/lib/active_record/associations/builder/has_many.rb
index 8a6f5a87e7..d29a525b9e 100644
--- a/activerecord/lib/active_record/associations/builder/has_many.rb
+++ b/activerecord/lib/active_record/associations/builder/has_many.rb
@@ -28,7 +28,7 @@ module ActiveRecord::Associations::Builder
def define_destroy_dependency_method
name = self.name
- mixin.send(:define_method, dependency_method_name) do
+ mixin.redefine_method(dependency_method_name) do
send(name).each do |o|
# No point in executing the counter update since we're going to destroy the parent anyway
counter_method = ('belongs_to_counter_cache_before_destroy_for_' + self.class.name.downcase).to_sym
@@ -45,7 +45,7 @@ module ActiveRecord::Associations::Builder
def define_delete_all_dependency_method
name = self.name
- mixin.send(:define_method, dependency_method_name) do
+ mixin.redefine_method(dependency_method_name) do
send(name).delete_all
end
end
@@ -53,7 +53,7 @@ module ActiveRecord::Associations::Builder
def define_restrict_dependency_method
name = self.name
- mixin.send(:define_method, dependency_method_name) do
+ mixin.redefine_method(dependency_method_name) do
raise ActiveRecord::DeleteRestrictionError.new(name) unless send(name).empty?
end
end