module RocketJob::Batch::Categories::ClassMethods
Public Instance Methods
from_properties(properties)
click to toggle source
Builds this job instance from the supplied properties hash that may contain input and output categories. Keeps the defaults and merges in settings without replacing existing categories.
Calls superclass method
# File lib/rocket_job/batch/categories.rb, line 53 def from_properties(properties) return super(properties) unless properties.key?("input_categories") || properties.key?("output_categories") properties = properties.dup input_categories = properties.delete("input_categories") output_categories = properties.delete("output_categories") job = super(properties) job.merge_input_categories(input_categories) job.merge_output_categories(output_categories) job end
input_category(**args)
click to toggle source
Define a new input category @see RocketJob::Category::Input
# File lib/rocket_job/batch/categories.rb, line 31 def input_category(**args) category = RocketJob::Category::Input.new(**args) if defined_input_categories.nil? self.defined_input_categories = [category] else rocketjob_categories_set(category, defined_input_categories) end end
output_category(**args)
click to toggle source
Define a new output category @see RocketJob::Category::Output
# File lib/rocket_job/batch/categories.rb, line 42 def output_category(**args) category = RocketJob::Category::Output.new(**args) if defined_output_categories.nil? self.defined_output_categories = [category] else rocketjob_categories_set(category, defined_output_categories) end end
Private Instance Methods
rocketjob_categories_set(category, categories)
click to toggle source
# File lib/rocket_job/batch/categories.rb, line 67 def rocketjob_categories_set(category, categories) index = categories.find_index { |cat| cat.name == category.name } index ? categories[index] = category : categories << category category end