Class: JobIteration::ParallelEnumerator
- Inherits:
-
Object
- Object
- JobIteration::ParallelEnumerator
- Defined in:
- lib/job-iteration/parallel_enumerator.rb
Overview
ParallelEnumerator allows you to parallelize iterations.
Defined Under Namespace
Classes: EnqueueError, EnqueueJobs
Instance Method Summary collapse
-
#initialize(block, cursor:) ⇒ ParallelEnumerator
constructor
A new instance of ParallelEnumerator.
- #to_enum ⇒ Object
Constructor Details
#initialize(block, cursor:) ⇒ ParallelEnumerator
Returns a new instance of ParallelEnumerator.
36 37 38 39 40 41 |
# File 'lib/job-iteration/parallel_enumerator.rb', line 36 def initialize(block, cursor:) @instance = cursor["instance"] @instances = cursor["instances"] inner_cursor = cursor["inner_cursor"] @inner_enum = block.call(@instance, @instances, inner_cursor) end |
Instance Method Details
#to_enum ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/job-iteration/parallel_enumerator.rb', line 43 def to_enum Enumerator.new(-> { @inner_enum.size }) do |yielder| @inner_enum.each do |object_from_enumerator, cursor_from_enumerator| parallel_cursor = { "instance" => @instance, "instances" => @instances, "inner_cursor" => cursor_from_enumerator } yielder.yield(object_from_enumerator, parallel_cursor) end end end |