Class: Enumerator::Chain
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
::Enumerator
|
|
|
Instance Chain:
self,
::Enumerator,
::Enumerable
|
|
| Inherits: |
Enumerator
|
| Defined in: | enumerator.c, enumerator.c |
Overview
Chain is a subclass of ::Enumerator, which represents a chain of enumerables that works as a single enumerator.
This type of objects can be created by Enumerable#chain and #+.
Class Method Summary
-
.new(*enums) ⇒ Enumerator
constructor
Generates a new enumerator object that iterates over the elements of given enumerable objects in sequence.
::Enumerator - Inherited
| .new | Creates a new |
| .produce | Creates an infinite enumerator from any block, just called over and over. |
Instance Method Summary
::Enumerator - Inherited
| #+ | Returns an enumerator object generated from this enumerator and a given enumerable. |
| #each | Iterates over the block according to how this |
| #each_with_index | Same as #with_index(0), i.e. there is no starting offset. |
| #each_with_object | Alias for #with_object. |
| #feed | Sets the value to be returned by the next yield inside |
| #inspect | Creates a printable version of e. |
| #next | Returns the next object in the enumerator, and move the internal position forward. |
| #next_values | Returns the next object as an array in the enumerator, and move the internal position forward. |
| #peek | Returns the next object in the enumerator, but doesn’t move the internal position forward. |
| #peek_values | Returns the next object as an array, similar to #next_values, but doesn’t move the internal position forward. |
| #rewind | Rewinds the enumeration sequence to the beginning. |
| #size | Returns the size of the enumerator, or |
| #with_index | Iterates the given block for each element with an index, which starts from |
| #with_object | Iterates the given block for each element with an arbitrary object, |
| #initialize_copy | |
::Enumerable - Included
| #all? | Passes each element of the collection to the given block. |
| #any? | Passes each element of the collection to the given block. |
| #chain | Returns an enumerator object generated from this enumerator and given enumerables. |
| #chunk | Enumerates over the items, chunking them together based on the return value of the block. |
| #chunk_while | Creates an enumerator for each chunked elements. |
| #collect | Alias for Enumerable#map. |
| #collect_concat | Alias for Enumerable#flat_map. |
| #count | Returns the number of items in |
| #cycle | Calls block for each element of enum repeatedly n times or forever if none or |
| #detect | Alias for Enumerable#find. |
| #drop | Drops first n elements from enum, and returns rest elements in an array. |
| #drop_while | Drops elements up to, but not including, the first element for which the block returns |
| #each_cons | Iterates the given block for each array of consecutive <n> elements. |
| #each_entry | Calls block once for each element in |
| #each_slice | Iterates the given block for each slice of <n> elements. |
| #each_with_index | Calls block with two arguments, the item and its index, for each item in enum. |
| #each_with_object | Iterates the given block for each element with an arbitrary object given, and returns the initially given object. |
| #entries | Alias for Enumerable#to_a. |
| #filter | Returns an array containing all elements of |
| #filter_map | Returns a new array containing the truthy results (everything except |
| #find | Passes each entry in enum to block. |
| #find_all | Alias for Enumerable#filter. |
| #find_index | Compares each entry in enum with value or passes to block. |
| #first | Returns the first element, or the first |
| #flat_map | Returns a new array with the concatenated results of running block once for every element in enum. |
| #grep | Returns an array of every element in enum for which |
| #grep_v | Inverted version of Enumerable#grep. |
| #group_by | Groups the collection by result of the block. |
| #include? | Alias for Enumerable#member?. |
| #inject | Combines all elements of enum by applying a binary operation, specified by a block or a symbol that names a method or operator. |
| #lazy | Returns an |
| #map | Returns a new array with the results of running block once for every element in enum. |
| #max | Returns the object in enum with the maximum value. |
| #max_by | Returns the object in enum that gives the maximum value from the given block. |
| #member? | Returns |
| #min | Returns the object in enum with the minimum value. |
| #min_by | Returns the object in enum that gives the minimum value from the given block. |
| #minmax | Returns a two element array which contains the minimum and the maximum value in the enumerable. |
| #minmax_by | Returns a two element array containing the objects in enum that correspond to the minimum and maximum values respectively from the given block. |
| #none? | Passes each element of the collection to the given block. |
| #one? | Passes each element of the collection to the given block. |
| #partition | Returns two arrays, the first containing the elements of enum for which the block evaluates to true, the second containing the rest. |
| #reduce | Alias for Enumerable#inject. |
| #reject | Returns an array for all elements of |
| #reverse_each | Builds a temporary array and traverses that array in reverse order. |
| #select | Alias for Enumerable#filter. |
| #slice_after | Creates an enumerator for each chunked elements. |
| #slice_before | Creates an enumerator for each chunked elements. |
| #slice_when | Creates an enumerator for each chunked elements. |
| #sort | Returns an array containing the items in enum sorted. |
| #sort_by | Sorts enum using a set of keys generated by mapping the values in enum through the given block. |
| #sum | Returns the sum of elements in an |
| #take | Returns first n elements from enum. |
| #take_while | Passes elements to the block until the block returns |
| #tally | Tallies the collection, i.e., counts the occurrences of each element. |
| #to_a | Returns an array containing the items in enum. |
| #to_h | Returns the result of interpreting enum as a list of |
| #uniq | Returns a new array by removing duplicate values in |
| #zip | Takes one element from enum and merges corresponding elements from each args. |
Constructor Details
.new(*enums) ⇒ Enumerator
Generates a new enumerator object that iterates over the elements of given enumerable objects in sequence.
e = Enumerator::Chain.new(1..3, [4, 5])
e.to_a #=> [1, 2, 3, 4, 5]
e.size #=> 5
# File 'enumerator.c', line 3107
static VALUE
enum_chain_initialize(VALUE obj, VALUE enums)
{
struct enum_chain *ptr;
rb_check_frozen(obj);
TypedData_Get_Struct(obj, struct enum_chain, &enum_chain_data_type, ptr);
if (!ptr) rb_raise(rb_eArgError, "unallocated chain");
ptr->enums = rb_obj_freeze(enums);
ptr->pos = -1;
return obj;
}