Class: Opera::Operation::Instructions::Executors::Within

Inherits:
Executor
  • Object
show all
Defined in:
lib/opera/operation/instructions/executors/within.rb

Instance Attribute Summary

Attributes inherited from Executor

#operation

Instance Method Summary collapse

Methods inherited from Executor

#add_instruction_output, #break_condition, #config, #context, #evaluate_instruction, #evaluate_instructions, #initialize, #production_mode?, #reporter, #result

Constructor Details

This class inherits a constructor from Opera::Operation::Executor

Instance Method Details

#call(instruction) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
# File 'lib/opera/operation/instructions/executors/within.rb', line 8

def call(instruction)
  wrapper_method = instruction[:label]
  nested_instructions = instruction[:instructions]

  raise ArgumentError, 'within requires a method name' unless wrapper_method
  raise ArgumentError, 'within requires a block with at least one instruction' if nested_instructions.nil?

  operation.send(wrapper_method) do
    super
  end
end