Enumerable(T)
The Enumerable mixin provides collection classes with several traversal, searching,
filtering and querying methods.
Including types must provide an each method, which yields successive members
of the collection.
For example:
class Three
include Enumerable(Int32)
def each(&)
yield 1
yield 2
yield 3
end
end
three = Three.new
three.to_a # => [1, 2, 3]
three.select &.odd? # => [1, 3]
three.all? { |x| x < 10 } # => true
Note that most search and filter methods traverse an Enumerable eagerly,
producing an Array as the result. For a lazy alternative refer to
the Iterator and Iterable modules.
Instance methods
to_pf_bidi
Like to_pf_map, but creates a Pf::BidiMap.
(0...10).zip('a'...'z').to_pf_bidi # => Pf::BidiMap{0 <=> 'a', 1 <=> 'b', 2 <=> 'c', ...}
to_pf_map
Creates a Pf::Map out of {key, value} tuple pairs returned
by the block.
(0...10).to_pf_map { |n| {n, n * 2} } # => Pf::Map{2 => 4, 3 => 6, 4 => 8, ...}
to_pf_map
Creates a Pf::Map out of an Enumerable whose elements respond
to .[0] and .[1].
(0...10).zip('a'..'z').to_pf_map # => Pf::Map{0 => 'a', 1 => 'b', 2 => 'c', ...}
to_pf_set
Creates a Pf::Set out of an Enumerable.
(0...5).to_pf_set # => Pf::Set[0, 1, 2, 3, 4]
to_pf_uset32
Creates a Pf::USet32 out of a UInt32 enumerable.
(0u32...5u32).to_pf_uset32 # => Pf::USet32[0, 1, 2, 3, 4]