Sha256: 3fdd7d0ab1325661e653ea6d439131498ed6781c3b85bfe60668051998ca1fa0
Contents?: true
Size: 1.59 KB
Versions: 12
Compression:
Stored size: 1.59 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}") 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