Class: Yaso::Logic::Wrap

Inherits:
Base
  • Object
show all
Defined in:
lib/yaso/logic/wrap.rb

Instance Attribute Summary

Attributes inherited from Base

#name, #on_failure, #on_success

Instance Method Summary collapse

Methods inherited from Base

#add_failure, #add_next_step

Constructor Details

#initialize(wrapper:, **options) ⇒ Wrap

Returns a new instance of Wrap.



6
7
8
9
# File 'lib/yaso/logic/wrap.rb', line 6

def initialize(wrapper:, **options)
  super(**options)
  @wrapper = wrapper
end

Instance Method Details

#call(context, instance) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/yaso/logic/wrap.rb', line 11

def call(context, instance)
  instance.success = true
  result = @invocable.call(context, instance) { @wrapper.call(context, instance).success? }
  if result
    @next_step
  else
    instance.success = false
    @failure
  end
end