aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_relation
diff options
context:
space:
mode:
Diffstat (limited to 'lib/active_relation')
-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