Sha256: de50ed6a249cbc463cefa6657d2c64b79c6f5eb715f320816886dbd98b7b2fbe

Contents?: true

Size: 539 Bytes

Versions: 1

Compression:

Stored size: 539 Bytes

Contents

module Interactor
  module Organizer
    def self.included(base)
      base.class_eval do
        include Interactor

        extend ClassMethods
        include InstanceMethods
      end
    end

    module ClassMethods
      def organize(*interactors)
        @organized = interactors.flatten
      end

      def organized
        @organized ||= []
      end
    end

    module InstanceMethods
      def call
        self.class.organized.each do |interactor|
          interactor.call!(context)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
interactor-3.0.0 lib/interactor/organizer.rb