Class: Chicago::Flow::TransformationChain
- Inherits:
-
Object
- Object
- Chicago::Flow::TransformationChain
- Defined in:
- lib/chicago/flow/transformation_chain.rb
Instance Method Summary collapse
- #downstream_fields(fields) ⇒ Object
- #flush ⇒ Object
-
#initialize(*transforms) ⇒ TransformationChain
constructor
A new instance of TransformationChain.
- #output_streams ⇒ Object
- #process(row) ⇒ Object
- #upstream_fields(fields) ⇒ Object
Constructor Details
#initialize(*transforms) ⇒ TransformationChain
Returns a new instance of TransformationChain.
4 5 6 |
# File 'lib/chicago/flow/transformation_chain.rb', line 4 def initialize(*transforms) @transforms = transforms end |
Instance Method Details
#downstream_fields(fields) ⇒ Object
28 29 30 |
# File 'lib/chicago/flow/transformation_chain.rb', line 28 def downstream_fields(fields) @transforms.inject(fields) {|t| t.downstream_fields(fields) } end |
#flush ⇒ Object
18 19 20 21 22 |
# File 'lib/chicago/flow/transformation_chain.rb', line 18 def flush @transforms.inject([]) do |rows, transform| process_rows(rows, transform) + transform.flush end end |
#output_streams ⇒ Object
8 9 10 |
# File 'lib/chicago/flow/transformation_chain.rb', line 8 def output_streams @transforms.inject([]) {|s, t| s | t.output_streams } end |
#process(row) ⇒ Object
12 13 14 15 16 |
# File 'lib/chicago/flow/transformation_chain.rb', line 12 def process(row) @transforms.inject([row]) do |rows, transform| process_rows(rows, transform) end end |
#upstream_fields(fields) ⇒ Object
24 25 26 |
# File 'lib/chicago/flow/transformation_chain.rb', line 24 def upstream_fields(fields) @transforms.inject(fields) {|t| t.upstream_fields(fields) } end |