module GuidedInteractor

Usage

class MyInteractor
  include GuidedInteractor

  expects :foo
  expects! :bar, :baz
  provides :waldo

  def call
    context.waldo = 'waldo'
    puts foo
    puts waldo
  end
end

Constants

VERSION

Public Class Methods

included(base) click to toggle source
# File lib/guided_interactor.rb, line 25
def self.included(base)
  base.class_eval do
    extend ClassMethods
    include Hooks
    include Delegator

    attr_reader :context
  end
end
new(context = {}) click to toggle source
# File lib/guided_interactor.rb, line 47
def initialize(context = {})
  @context = Context.build(context)
end

Public Instance Methods

call() click to toggle source
# File lib/guided_interactor.rb, line 66
def call
end
rollback() click to toggle source
# File lib/guided_interactor.rb, line 69
def rollback
end
run() click to toggle source
# File lib/guided_interactor.rb, line 51
def run
  run!
rescue Failure
end
run!() click to toggle source
# File lib/guided_interactor.rb, line 56
def run!
  with_hooks do
    call
    context.called!(self)
  end
rescue StandardError
  context.rollback!
  raise
end