aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_relation/relations/selection.rb
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-02-16 20:46:05 -0800
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-02-16 20:46:05 -0800
commit99b2188f9495068399000b891c2c9b66331c4b02 (patch)
tree0ed8d54dda190497e3ca1071ca87ae413cbc1b44 /lib/active_relation/relations/selection.rb
parent49c2620bc63d4611db979b0a2151b3e080bb1acf (diff)
downloadrails-99b2188f9495068399000b891c2c9b66331c4b02.tar.gz
rails-99b2188f9495068399000b891c2c9b66331c4b02.tar.bz2
rails-99b2188f9495068399000b891c2c9b66331c4b02.zip
introduced __collect__, an internal enumerating operator. This is a map down the tree representing the relation. Monadic map to be precise
Diffstat (limited to 'lib/active_relation/relations/selection.rb')
-rw-r--r--lib/active_relation/relations/selection.rb11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/active_relation/relations/selection.rb b/lib/active_relation/relations/selection.rb
index 98f56b0cbd..93e0e16dc5 100644
--- a/lib/active_relation/relations/selection.rb
+++ b/lib/active_relation/relations/selection.rb
@@ -12,14 +12,15 @@ module ActiveRelation
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
+
+ def __collect__(&block)
+ Selection.new(relation.__collect__(&block), yield(predicate))
+ end
+
end
end \ No newline at end of file