Module: Interactor::Strict

Defined in:
lib/interactor/strict.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
# File 'lib/interactor/strict.rb', line 5

def self.included(base)
  base.class_eval do
    extend ClassMethods
  end
end

Instance Method Details

#initialize(*args, **kargs) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/interactor/strict.rb', line 11

def initialize(*args, **kargs)
  unless args.empty?
    raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 0)"
  end

  @kargs = kargs
  @context = Context.build(*args)
end

#run!Object



20
21
22
23
24
25
26
27
28
# File 'lib/interactor/strict.rb', line 20

def run!
  with_hooks do
    call(**@kargs)
    context.called!(self)
  end
rescue
  context.rollback!
  raise
end