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
collect()

Alias for map

find_all()

Alias for select

map() {|*input| ...}
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
reject() {|*input| ...}
# 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
select() {|*input| ...}
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(n)

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
take(n)

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