Class: Trailblazer::Activity::TaskWrap::Input
- Inherits:
-
Object
- Object
- Trailblazer::Activity::TaskWrap::Input
- Defined in:
- lib/trailblazer/activity/task_wrap/variable_mapping.rb
Overview
Calls your @filter and replaces the original ctx with your returned one.
Instance Method Summary collapse
-
#call(wrap_ctx, original_args) ⇒ Object
inputinput.call() is invoked in the circuit.
-
#initialize(filter, id:) ⇒ Input
constructor
A new instance of Input.
Constructor Details
#initialize(filter, id:) ⇒ Input
Returns a new instance of Input.
35 36 37 38 |
# File 'lib/trailblazer/activity/task_wrap/variable_mapping.rb', line 35 def initialize(filter, id:) @filter = filter @id = id end |
Instance Method Details
#call(wrap_ctx, original_args) ⇒ Object
Trailblazer::Activity::TaskWrap::Input.inputinput.call() is invoked in the circuit. ‘original_args` are the actual args passed to the wrapped task: [ [ctx, ..], circuit_options ]
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/trailblazer/activity/task_wrap/variable_mapping.rb', line 43 def call(wrap_ctx, original_args) # let user compute new ctx for the wrapped task. input_ctx = apply_filter(*original_args) # decompose the original_args since we want to modify them. (original_ctx, ), = original_args wrap_ctx = wrap_ctx.merge(@id => original_ctx) # remember the original ctx by the key {@id}. # instead of the original Context, pass on the filtered `input_ctx` in the wrap. return wrap_ctx, [[input_ctx, ], ] end |