Class: Fairy::PInject
- Defined in:
- lib/fairy/node/p-inject.rb
Direct Known Subclasses
Constant Summary
Constants inherited from PIOFilter
Fairy::PIOFilter::ST_WAIT_IMPORT
Constants inherited from PFilter
Fairy::PFilter::END_OF_STREAM, Fairy::PFilter::ST_ACTIVATE, Fairy::PFilter::ST_FINISH, Fairy::PFilter::ST_INIT
Instance Attribute Summary
Attributes inherited from PFilter
#IGNORE_EXCEPTION, #id, #log_id, #ntask
Instance Method Summary collapse
- #basic_each(&block) ⇒ Object
-
#initialize(id, processor, bjob, opts, block_source) ⇒ PInject
constructor
A new instance of PInject.
Methods inherited from PIOFilter
Methods inherited from PFilter
#abort_running, #basic_start, #break_running, #each, #global_break, #global_break_from_other, #handle_exception, #key, #key=, #next, #no, #no=, #notice_status, #processor, #start, #start_export, #start_watch_status, #status=, #terminate, #terminate_proc
Constructor Details
#initialize(id, processor, bjob, opts, block_source) ⇒ PInject
Returns a new instance of PInject.
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/fairy/node/p-inject.rb', line 13 def initialize(id, processor, bjob, opts, block_source) super @init_value = :__FAIRY_NO_VALUE__ if @opts.key?(:init_value) @init_value = @opts[:init_value].dc_deep_copy end @block_source = block_source # @inject_proc = @context.create_proc(@block_source) end |
Instance Method Details
#basic_each(&block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/fairy/node/p-inject.rb', line 24 def basic_each(&block) @inject_proc = BBlock.new(@block_source, @context, self) sum = @init_value @input.each do |e| if sum == :__FAIRY_NO_VALUE__ sum = e else # Log::debug(self, "sum, e, #{sum}, #{e}") if Import::CTLTOKEN_NULLVALUE === (v = @inject_proc.yield(sum, e)) next end sum = v end end finish(sum, &block) end |