Class: Jinx::MultiEnumerator
- Includes:
- Collection
- Defined in:
- lib/jinx/helpers/multi_enumerator.rb
Overview
A MultiEnumerator iterates over several Enumerators in sequence. Unlike Array#+, MultiEnumerator reflects changes to the underlying enumerators.
Instance Attribute Summary collapse
-
#components ⇒ <Enumerable>
readonly
The enumerated collections.
Instance Method Summary collapse
-
#each ⇒ Object
Iterates over each of this MultiEnumerator’s Enumerators in sequence.
-
#initialize(*enums) ⇒ MultiEnumerator
constructor
Initializes a new MultiEnumerator on the given components.
Methods included from Enumerable
#collection?, #compact, #compact_map, #detect_value, #detect_with_value, #difference, #empty?, #enumerate, #filter, #first, #flatten, #hashify, #intersect, #join, #last, #partial_sort, #partial_sort_by, #pp_s, #pretty_print, #pretty_print_cycle, #qp, #size, #to_compact_hash, #to_compact_hash_with_index, #to_enum, #to_series, #transform, #transitive_closure, #union
Constructor Details
#initialize(*enums) ⇒ MultiEnumerator
Initializes a new Jinx::MultiEnumerator on the given components.
20 21 22 23 24 |
# File 'lib/jinx/helpers/multi_enumerator.rb', line 20 def initialize(*enums) super() @components = enums @components.compact! end |
Instance Attribute Details
#components ⇒ <Enumerable> (readonly)
Returns the enumerated collections.
15 16 17 |
# File 'lib/jinx/helpers/multi_enumerator.rb', line 15 def components @components end |
Instance Method Details
#each ⇒ Object
Iterates over each of this MultiEnumerator’s Enumerators in sequence.
27 28 29 |
# File 'lib/jinx/helpers/multi_enumerator.rb', line 27 def each @components.each { |enum| enum.each { |item| yield item } } end |