Class: Floe::BuiltinRunner::Runner
- Inherits:
-
Runner
- Object
- Runner
- Floe::BuiltinRunner::Runner
- Defined in:
- lib/floe/builtin_runner/runner.rb
Instance Method Summary collapse
- #cleanup(runner_context) ⇒ Object
- #output(runner_context) ⇒ Object
- #run_async!(resource, params, secrets, context) ⇒ Object
- #running?(runner_context) ⇒ Boolean
- #status!(runner_context) ⇒ Object
- #success?(runner_context) ⇒ Boolean
Instance Method Details
#cleanup(runner_context) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/floe/builtin_runner/runner.rb', line 22 def cleanup(runner_context) method_name = runner_context["method"] raise ArgumentError if method_name.nil? cleanup_method = :"#{method_name}_cleanup" return unless Methods.respond_to?(cleanup_method, true) Methods.send(cleanup_method, runner_context) end |
#output(runner_context) ⇒ Object
48 49 50 |
# File 'lib/floe/builtin_runner/runner.rb', line 48 def output(runner_context) runner_context["output"] end |
#run_async!(resource, params, secrets, context) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/floe/builtin_runner/runner.rb', line 4 def run_async!(resource, params, secrets, context) raise ArgumentError, "Invalid resource" unless resource&.start_with?(SCHEME_PREFIX) method_name = resource.sub(SCHEME_PREFIX, "") begin runner_context = {"method" => method_name} method_result = Methods.public_send(method_name, params, secrets, context) method_result.merge(runner_context) rescue NoMethodError Floe::BuiltinRunner.error!(runner_context, :cause => "undefined method [#{method_name}]") rescue => err Floe::BuiltinRunner.error!(runner_context, :cause => err.to_s) ensure cleanup(runner_context) end end |
#running?(runner_context) ⇒ Boolean
40 41 42 |
# File 'lib/floe/builtin_runner/runner.rb', line 40 def running?(runner_context) runner_context["running"] end |
#status!(runner_context) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/floe/builtin_runner/runner.rb', line 32 def status!(runner_context) method_name = runner_context["method"] raise ArgumentError if method_name.nil? return if runner_context["running"] == false Methods.send(:"#{method_name}_status!", runner_context) end |
#success?(runner_context) ⇒ Boolean
44 45 46 |
# File 'lib/floe/builtin_runner/runner.rb', line 44 def success?(runner_context) runner_context["success"] end |