Module: Zertico::Organizer

Defined in:
lib/zertico/organizer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#interactors_classesObject (readonly)

Returns the value of attribute interactors_classes.



3
4
5
# File 'lib/zertico/organizer.rb', line 3

def interactors_classes
  @interactors_classes
end

#performedObject (readonly)

Returns the value of attribute performed.



3
4
5
# File 'lib/zertico/organizer.rb', line 3

def performed
  @performed
end

Instance Method Details

#organize(interactors) ⇒ Object



5
6
7
8
# File 'lib/zertico/organizer.rb', line 5

def organize(interactors)
  @performed = []
  @interactors_classes = Array(interactors)
end

#perform(params) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/zertico/organizer.rb', line 10

def perform(params)
  @params = params
  interactors_classes.each do |interactor_class|
    interactor = interactor_class.new
    interactor.perform(@params)
    performed << interactor
  end
  true
rescue Zertico::Exceptions::RollbackException
  rollback
end

#rollbackObject



22
23
24
# File 'lib/zertico/organizer.rb', line 22

def rollback
  performed.map(&:rollback)
end