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