Module Enumerable::Filterable
In: lib/more/facets/filter.rb

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

[Source]

# 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

[Source]

# 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

[Source]

# 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

[Source]

# 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

[Source]

# 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

[Validate]