Class: Opener::Client::Pipeline
- Inherits:
-
Object
- Object
- Opener::Client::Pipeline
- Includes:
- ProcessorDefiner, Processors
- Defined in:
- lib/opener/client/pipeline.rb
Class Method Summary collapse
Instance Method Summary collapse
- #pipe ⇒ Object
- #process(input) ⇒ Object
- #process_async(input) ⇒ Object
- #process_sync(input) ⇒ Object
Methods included from ProcessorDefiner
Class Method Details
.outlet(outlet) ⇒ Object
17 18 19 |
# File 'lib/opener/client/pipeline.rb', line 17 def self.outlet(outlet) @@outlet = outlet end |
.processor_style(style) ⇒ Object
9 10 11 |
# File 'lib/opener/client/pipeline.rb', line 9 def self.processor_style(style) @@style = style end |
.webservice_host(host = nil) ⇒ Object
13 14 15 |
# File 'lib/opener/client/pipeline.rb', line 13 def self.webservice_host(host=nil) @@host = host end |
Instance Method Details
#pipe ⇒ Object
21 22 23 |
# File 'lib/opener/client/pipeline.rb', line 21 def pipe @pipe ||= self.class.processors.map{|p| p.new(@@host)} end |
#process(input) ⇒ Object
40 41 42 |
# File 'lib/opener/client/pipeline.rb', line 40 def process(input) json_to_hash send(:"process_#{@@style}", input) end |
#process_async(input) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/opener/client/pipeline.rb', line 31 def process_async(input) endpoints = pipe.map(&:endpoint) callbacks = endpoints[1..-1] callbacks << @@outlet pipe[0].process(input, callbacks) end |
#process_sync(input) ⇒ Object
25 26 27 28 29 |
# File 'lib/opener/client/pipeline.rb', line 25 def process_sync(input) pipe.inject(input) do |memo, pipe| memo = pipe.process(memo) end end |