Sha256: d847e5ba75f3dcc0c8c2e126e0e45b60132cbf277e0ca3c869f87b30b29814c0

Contents?: true

Size: 1.6 KB

Versions: 12

Compression:

Stored size: 1.6 KB

Contents

module Eco
  module API
    module Common
      module Loaders
        class UseCase < Eco::API::Common::BaseLoader

          class << self
            # @return [Symbol] the `type` of usecase (i.e. `:sync`, `:transform`, `:import`, `:other`)
            def type(value = nil)
              unless value
                return @type || raise("You should specify a type of case [:sync, :transform, :import, :other] for #{self.class}")
              end
              @type = value
            end
          end

          inheritable_class_vars :type

          def initialize(usecases)
            raise "Expected Eco::API::UseCases. Given #{usecases.class}" unless usecases.is_a?(Eco::API::UseCases)
            usecases.define(self.name, type: self.type, &self.method(:main))
          end

          # The parameters of this method will depend on the `type` of usecase.
          # @param entries [Eco::API::Common::People::Entries] the input entries with the data.
          # @param people [Eco::API::Organization::People] the people in the queue of the current `job`
          # @param session [Eco::API::Session] the current session where the usecase kicks in.
          # @param options [Hash] the options that modify the case behaviour or bring some dependencies.
          # @param usecase [Eco::API::Policies::Policy] the `usecase` instance object.
          def main(entries, people, session, options, usecase)
            raise "You should implement this method"
          end

          def type
            self.class.type
          end

        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
eco-helpers-2.0.12 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.11 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.10 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.9 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.8 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.7 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.6 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.5 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.4 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.3 lib/eco/api/common/loaders/use_case.rb
eco-helpers-2.0.2 lib/eco/api/common/loaders/use_case.rb
eco-helpers-1.5.15 lib/eco/api/common/loaders/use_case.rb