module Denumerable

Denumerable

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.

Public Instance Methods

collect() click to toggle source
Alias for: map
find_all() click to toggle source
Alias for: select
map() { |*input| ... } click to toggle source
# File lib/core/facets/denumerable.rb, line 13
def map
  Denumerator.new do |output|
    each do |*input|
      output.yield yield(*input)
    end
  end
end
Also aliased as: collect
reject() { |*input| ... } click to toggle source
# File lib/core/facets/denumerable.rb, line 33
def reject
  Denumerator.new do |output|
    each do |*input|
      output.yield(*input) unless yield(*input)
    end
  end
end
select() { |*input| ... } click to toggle source
# File lib/core/facets/denumerable.rb, line 23
def select
  Denumerator.new do |output|
    each do |*input|
      output.yield(*input) if yield(*input)
    end
  end
end
Also aliased as: find_all
skip(n) click to toggle source

Skip the first n items in the list

# File lib/core/facets/denumerable.rb, line 54
def skip(n)
  Denumerator.new do |output|
    count = 0
    each do |*input|
      output.yield(*input) if count >= n
      count += 1
    end
  end
end
take(n) click to toggle source

Limit to the first n items in the list

# File lib/core/facets/denumerable.rb, line 42
def take(n)
  Denumerator.new do |output|
    count = 0
    each do |*input|
      break if count >= n
      output.yield(*input)
      count += 1
    end
  end
end