class Dao::Gateway::Pipe
Attributes
processors[R]
Public Class Methods
new()
click to toggle source
# File lib/dao/gateway/pipe.rb, line 8 def initialize @processors = [] end
Public Instance Methods
initialize_copy(originial_pipe)
click to toggle source
# File lib/dao/gateway/pipe.rb, line 12 def initialize_copy(originial_pipe) @processors = originial_pipe.processors.dup end
insert_processor_at(index, processor)
click to toggle source
# File lib/dao/gateway/pipe.rb, line 24 def insert_processor_at(index, processor) @processors.insert(index, processor) end
postprocess(processor)
click to toggle source
# File lib/dao/gateway/pipe.rb, line 16 def postprocess(processor) @processors.unshift(processor) end
preprocess(processor)
click to toggle source
# File lib/dao/gateway/pipe.rb, line 20 def preprocess(processor) @processors << processor end
preprocess_before(processor_type, processor)
click to toggle source
# File lib/dao/gateway/pipe.rb, line 28 def preprocess_before(processor_type, processor) index = @processors.index { |el| el.instance_of? processor_type } insert_processor_at(index, processor) end
process(raw_element, associations)
click to toggle source
# File lib/dao/gateway/pipe.rb, line 33 def process(raw_element, associations) @data_processed = true processors = [] @processors.all? do |processor| processor.prepare(associations, raw_element) processors.unshift(processor) processor.need_to_continue_lookup? end processors.inject(raw_element) do |entity, processor| processor.process(entity) end end