module Denumerable
Classes which include Denumerable
will get versions of map, select, and so on, which return a Denumerator
, so that they work horizontally without creating intermediate arrays.
@author Brian Candler @author Trans
Public Instance Methods
map() { |*input| ... }
click to toggle source
# File lib/core/facets/denumerable.rb, line 14 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 34 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 24 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 55 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 43 def take(n) Denumerator.new do |output| count = 0 each do |*input| break if count >= n output.yield(*input) count += 1 end end end