module CommandServiceObject::Hooks::InstanceMethods
Attributes
_called_micros[RW]
Public Instance Methods
rollback_micros()
click to toggle source
# File lib/command_service_object/hooks.rb, line 25 def rollback_micros _called_micros.reverse_each(&:rollback) end
setup_micros(micros)
click to toggle source
# File lib/command_service_object/hooks.rb, line 29 def setup_micros(micros) micros.each do |micro| method_name = micro.name.split('::').last.underscore # unrollable micros define_singleton_method("#{method_name}!") do |cmd| micro.new(cmd).call end # rollable micros define_singleton_method(method_name) do |cmd| obj = micro.new(cmd) result = obj.call _called_micros << obj result end end end