aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-02-16 16:42:46 -0800
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-02-16 16:42:46 -0800
commita2339b41746b92231dfbb15ab19d0f7e1aa2e69a (patch)
tree2f434f2dbe4eb1ac387a7a089c7216a176d197f5 /lib
parentd0ba361c93aa94865ccfe739e9ab65654771e38e (diff)
downloadrails-a2339b41746b92231dfbb15ab19d0f7e1aa2e69a.tar.gz
rails-a2339b41746b92231dfbb15ab19d0f7e1aa2e69a.tar.bz2
rails-a2339b41746b92231dfbb15ab19d0f7e1aa2e69a.zip
organized congruence stuff in attribute
Diffstat (limited to 'lib')
-rw-r--r--lib/active_relation/primitives/attribute.rb30
-rw-r--r--lib/active_relation/primitives/expression.rb1
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