Sha256: 0844bcaef737355d7ca6d0b8bb8efaf5e48ca0a5a99bf2747497e1fac1a4bf7b

Contents?: true

Size: 564 Bytes

Versions: 1

Compression:

Stored size: 564 Bytes

Contents

module Zertico
  module Organizer
    attr_reader :interactors_classes, :performed

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

    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

    def rollback
      performed.map(&:rollback)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zertico-1.3.0 lib/zertico/organizer.rb