Class: ConcurrentPipeline::Pipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/concurrent_pipeline/pipeline.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema) ⇒ Pipeline

Returns a new instance of Pipeline.



15
16
17
# File 'lib/concurrent_pipeline/pipeline.rb', line 15

def initialize(schema)
  @schema = schema
end

Instance Attribute Details

#schemaObject (readonly)

Returns the value of attribute schema.



14
15
16
# File 'lib/concurrent_pipeline/pipeline.rb', line 14

def schema
  @schema
end

Class Method Details

.define(&block) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/concurrent_pipeline/pipeline.rb', line 5

def self.define(&block)
  schema = Pipelines::Schema.new
  schema.instance_exec(&block)

  Class.new(Pipeline) do
    define_singleton_method(:process) { |store| new(schema).process(store) }
  end
end

Instance Method Details

#process(store) ⇒ Object



19
20
21
# File 'lib/concurrent_pipeline/pipeline.rb', line 19

def process(store)
  schema.build_processor(store).call
end