diff options
author | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-02-16 16:42:46 -0800 |
---|---|---|
committer | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-02-16 16:42:46 -0800 |
commit | a2339b41746b92231dfbb15ab19d0f7e1aa2e69a (patch) | |
tree | 2f434f2dbe4eb1ac387a7a089c7216a176d197f5 /lib/active_relation | |
parent | d0ba361c93aa94865ccfe739e9ab65654771e38e (diff) | |
download | rails-a2339b41746b92231dfbb15ab19d0f7e1aa2e69a.tar.gz rails-a2339b41746b92231dfbb15ab19d0f7e1aa2e69a.tar.bz2 rails-a2339b41746b92231dfbb15ab19d0f7e1aa2e69a.zip |
organized congruence stuff in attribute
Diffstat (limited to 'lib/active_relation')
-rw-r--r-- | lib/active_relation/primitives/attribute.rb | 30 | ||||
-rw-r--r-- | lib/active_relation/primitives/expression.rb | 1 |
2 files changed, 19 insertions, 12 deletions
diff --git a/lib/active_relation/primitives/attribute.rb b/lib/active_relation/primitives/attribute.rb index 4a10dffbe5..e55dd0bdc4 100644 --- a/lib/active_relation/primitives/attribute.rb +++ b/lib/active_relation/primitives/attribute.rb @@ -40,11 +40,27 @@ module ActiveRelation @alias == other.alias and ancestor == other.ancestor end - alias_method :eql?, :== - def =~(other) - !(history & other.send(:history)).empty? + module Congruence + def self.included(klass) + klass.class_eval do + alias_method :eql?, :== + end + end + + def hash + relation.hash + name.hash + end + + def history + [self] + (ancestor ? [ancestor, ancestor.send(:history)].flatten : []) + end + + def =~(other) + !(history & other.send(:history)).empty? + end end + include Congruence module Predications def equals(other) @@ -100,17 +116,9 @@ module ActiveRelation strategy.attribute prefix, name, self.alias end - def hash - relation.hash + name.hash - end - private def prefix relation.prefix_for(self) end - - def history - [self] + (ancestor ? [ancestor, ancestor.send(:history)].flatten : []) - end end end
\ No newline at end of file diff --git a/lib/active_relation/primitives/expression.rb b/lib/active_relation/primitives/expression.rb index 4d28ef108c..35c1b5ff65 100644 --- a/lib/active_relation/primitives/expression.rb +++ b/lib/active_relation/primitives/expression.rb @@ -36,6 +36,5 @@ module ActiveRelation ancestor == other.ancestor and @alias == other.alias end - alias_method :eql?, :== end end
\ No newline at end of file |