Browse files

AMo overrides alias_attribute and manages aliasing all known attribut…

…e method matchers
  • Loading branch information...
1 parent d574cb3 commit 391f978acdf9b4789f9ac301a72b99e05ace64f1 @josh josh committed Aug 10, 2009
View
10 activemodel/lib/active_model/attribute_methods.rb
@@ -133,6 +133,16 @@ def attribute_method_affix(*affixes)
undefine_attribute_methods
end
+ def alias_attribute(new_name, old_name)
+ attribute_method_matchers.each do |matcher|
+ module_eval <<-STR, __FILE__, __LINE__+1
+ def #{matcher.method_name(new_name)}(*args)
+ send(:#{matcher.method_name(old_name)}, *args)
+ end
+ STR
+ end
+ end
+
def define_attribute_methods(attr_names)
return if attribute_methods_generated?
attr_names.each do |attr_name|
View
17 activerecord/lib/active_record/attribute_methods/dirty.rb
@@ -182,23 +182,6 @@ def field_changed?(attr, old, value)
old != value
end
-
- module ClassMethods
- def self.extended(base)
- class << base
- alias_method_chain :alias_attribute, :dirty
- end
- end
-
- def alias_attribute_with_dirty(new_name, old_name)
- alias_attribute_without_dirty(new_name, old_name)
- DIRTY_AFFIXES.each do |affixes|
- module_eval <<-STR, __FILE__, __LINE__+1
- def #{affixes[:prefix]}#{new_name}#{affixes[:suffix]}; self.#{affixes[:prefix]}#{old_name}#{affixes[:suffix]}; end # def reset_subject!; self.reset_title!; end
- STR
- end
- end
- end
end
end
end

0 comments on commit 391f978

Please sign in to comment.