Filterable
Classes which include Enumerable::Filterable will get versions of map, select etc. which return a Filter, so that they work horizontally without creating intermediate arrays.
Methods
collect
find_all
map
reject
select
skip
take
Public Instance methods
Alias for map
Alias for select
This method is also aliased as
collect
[ + ]
# File lib/more/facets/filter.rb, line 53 def map Enumerator::Filter.new do |output| each do |*input| output.yield yield(*input) end end end
[ + ]
# File lib/more/facets/filter.rb, line 71 def reject Enumerator::Filter.new do |output| each do |*input| output.yield(*input) unless yield(*input) end end end
This method is also aliased as
find_all
[ + ]
# File lib/more/facets/filter.rb, line 62 def select Enumerator::Filter.new do |output| each do |*input| output.yield(*input) if yield(*input) end end end
Skip the first n items in the list
[ + ]
# File lib/more/facets/filter.rb, line 94 def skip(n) Enumerator::Filter.new do |output| count = 0 each do |*input| output.yield(*input) if count >= n count += 1 end end end
Limit to the first n items in the list
[ + ]
# File lib/more/facets/filter.rb, line 81 def take(n) Enumerator::Filter.new do |output| count = 0 each do |*input| break if count >= n output.yield(*input) count += 1 end end end