aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/dirty.rb
diff options
context:
space:
mode:
authorBryan Helmkamp <bryan@brynary.com>2009-05-11 22:23:47 -0400
committerBryan Helmkamp <bryan@brynary.com>2009-05-11 22:23:47 -0400
commita2875bec9a31702a385d2f34e66843ddbe4e9db2 (patch)
tree18e221e8a08f041efd7cb751d5114cf6430272f6 /activerecord/lib/active_record/dirty.rb
parent00a9d4b91cccdd88146cbe716eca844dcdfa08e7 (diff)
downloadrails-a2875bec9a31702a385d2f34e66843ddbe4e9db2.tar.gz
rails-a2875bec9a31702a385d2f34e66843ddbe4e9db2.tar.bz2
rails-a2875bec9a31702a385d2f34e66843ddbe4e9db2.zip
Use DependencyModule for included hooks in ActiveRecord
Diffstat (limited to 'activerecord/lib/active_record/dirty.rb')
-rw-r--r--activerecord/lib/active_record/dirty.rb21
1 files changed, 11 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/dirty.rb b/activerecord/lib/active_record/dirty.rb
index 4a2510aa63..fac6ca40d3 100644
--- a/activerecord/lib/active_record/dirty.rb
+++ b/activerecord/lib/active_record/dirty.rb
@@ -34,20 +34,21 @@ module ActiveRecord
# person.name << 'by'
# person.name_change # => ['uncle bob', 'uncle bobby']
module Dirty
+ extend ActiveSupport::DependencyModule
+
DIRTY_SUFFIXES = ['_changed?', '_change', '_will_change!', '_was']
- def self.included(base)
- base.attribute_method_suffix *DIRTY_SUFFIXES
- base.alias_method_chain :write_attribute, :dirty
- base.alias_method_chain :save, :dirty
- base.alias_method_chain :save!, :dirty
- base.alias_method_chain :update, :dirty
- base.alias_method_chain :reload, :dirty
+ included do
+ attribute_method_suffix *DIRTY_SUFFIXES
- base.superclass_delegating_accessor :partial_updates
- base.partial_updates = true
+ alias_method_chain :write_attribute, :dirty
+ alias_method_chain :save, :dirty
+ alias_method_chain :save!, :dirty
+ alias_method_chain :update, :dirty
+ alias_method_chain :reload, :dirty
- base.send(:extend, ClassMethods)
+ superclass_delegating_accessor :partial_updates
+ self.partial_updates = true
end
# Do any attributes have unsaved changes?