diff options
author | Bryan Helmkamp <bryan@brynary.com> | 2009-05-11 22:23:47 -0400 |
---|---|---|
committer | Bryan Helmkamp <bryan@brynary.com> | 2009-05-11 22:23:47 -0400 |
commit | a2875bec9a31702a385d2f34e66843ddbe4e9db2 (patch) | |
tree | 18e221e8a08f041efd7cb751d5114cf6430272f6 /activerecord/lib/active_record/dirty.rb | |
parent | 00a9d4b91cccdd88146cbe716eca844dcdfa08e7 (diff) | |
download | rails-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.rb | 21 |
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? |