Class: Hasta::ExecutionContext
- Inherits:
-
Object
- Object
- Hasta::ExecutionContext
- Defined in:
- lib/hasta/execution_context.rb
Overview
Executes each local EMR job in isolation
Defined Under Namespace
Classes: Subprocess
Instance Method Summary collapse
- #execute(source_file, data_source, data_sink) ⇒ Object
-
#initialize(ruby_files = [], env = {}) ⇒ ExecutionContext
constructor
A new instance of ExecutionContext.
Constructor Details
#initialize(ruby_files = [], env = {}) ⇒ ExecutionContext
Returns a new instance of ExecutionContext.
52 53 54 |
# File 'lib/hasta/execution_context.rb', line 52 def initialize(ruby_files = [], env = {}) @sub_process = Subprocess.new(ruby_files, env) end |
Instance Method Details
#execute(source_file, data_source, data_sink) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/hasta/execution_context.rb', line 56 def execute(source_file, data_source, data_sink) sub_process.start(source_file) do |sub_process| [ stream_input(data_source, sub_process.stdin), stream_output(sub_process.stdout) { |line| data_sink << line }, stream_output(sub_process.stderr) { |line| Hasta.logger.error line }, ].each(&:join) end data_sink.close end |