diff options
author | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-01-10 22:55:59 -0800 |
---|---|---|
committer | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-01-10 22:55:59 -0800 |
commit | eeb43fc8987c2ee4a774eeab31ba8cddad11f9af (patch) | |
tree | e61d07ed4f791ba767629b08cda2cdbae277615b /lib/active_relation/relations/selection.rb | |
parent | 984b1833b9c82f2f44fe6960bb8df5e41c478e07 (diff) | |
download | rails-eeb43fc8987c2ee4a774eeab31ba8cddad11f9af.tar.gz rails-eeb43fc8987c2ee4a774eeab31ba8cddad11f9af.tar.bz2 rails-eeb43fc8987c2ee4a774eeab31ba8cddad11f9af.zip |
new files?
Diffstat (limited to 'lib/active_relation/relations/selection.rb')
-rw-r--r-- | lib/active_relation/relations/selection.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/active_relation/relations/selection.rb b/lib/active_relation/relations/selection.rb new file mode 100644 index 0000000000..e102d105a0 --- /dev/null +++ b/lib/active_relation/relations/selection.rb @@ -0,0 +1,25 @@ +module ActiveRelation + module Relations + class Selection < Compound + attr_reader :relation, :predicate + + def initialize(relation, *predicates) + @predicate = predicates.shift + @relation = predicates.empty?? relation : Selection.new(relation, *predicates) + end + + def ==(other) + relation == other.relation and predicate == other.predicate + end + + def qualify + Selection.new(relation.qualify, predicate.qualify) + end + + protected + def selects + relation.send(:selects) + [predicate] + end + end + end +end
\ No newline at end of file |