module Rankum::Utils::Interactor

Public Class Methods

new(context={}) click to toggle source
# File lib/rankum/utils/interactor.rb, line 7
def initialize context={}
  @context = OpenStruct.new(context)
end

Public Instance Methods

context() click to toggle source
# File lib/rankum/utils/interactor.rb, line 34
def context
  @context
end
execute() { || ... } click to toggle source
# File lib/rankum/utils/interactor.rb, line 11
def execute
  begin
    yield
    exit if @context.fail?
    success!
   rescue Exception => e
     fail!
  end

  @context
end
fail!() click to toggle source
# File lib/rankum/utils/interactor.rb, line 38
def fail!
  @context.send("success?=",false)
  @context.send("fail?=",true)
end
organize(*interactors) click to toggle source
# File lib/rankum/utils/interactor.rb, line 23
def organize *interactors
  interactors.each do |interactor|
    context_hash = @context.to_h
    context = interactor.run(context_hash)

    @context = OpenStruct.new(context_hash.merge!(context.to_h))
  end

  @context
end
success!() click to toggle source
# File lib/rankum/utils/interactor.rb, line 43
def success!
  @context.send("success?=",true)
  @context.send("fail?=",false)
end