Sha256: eb82078a12ff38b990027f37ef192103720a8651ba0a8047b228a0a27f6cb7a0
Contents?: true
Size: 1.59 KB
Versions: 8
Compression:
Stored size: 1.59 KB
Contents
module Eco module API module Common module Loaders class UseCase < Eco::API::Common::Loaders::CaseBase 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}") 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
8 entries across 8 versions & 1 rubygems