module Lev::Routine::ClassMethods
Public Instance Methods
[](*args, **kwargs, &block)
click to toggle source
# File lib/lev/routine.rb, line 207 def [](*args, **kwargs, &block) result = call(*args, **kwargs, &block) result.errors.raise_exception_if_any! result.outputs.send(@express_output) end
active_job_enqueue_options()
click to toggle source
# File lib/lev/routine.rb, line 221 def active_job_enqueue_options @active_job_enqueue_options || { queue: :default } end
call(*args, **kwargs, &block)
click to toggle source
# File lib/lev/routine.rb, line 203 def call(*args, **kwargs, &block) new.call(*args, **kwargs, &block) end
class_to_symbol(klass)
click to toggle source
# File lib/lev/routine.rb, line 267 def class_to_symbol(klass) klass.name.underscore.gsub('/','_').to_sym end
create_status()
click to toggle source
# File lib/lev/routine.rb, line 271 def create_status create_status_proc.call end
delegates_to()
click to toggle source
# File lib/lev/routine.rb, line 254 def delegates_to @delegates_to end
express_output()
click to toggle source
# File lib/lev/routine.rb, line 250 def express_output @express_output end
find_status(id)
click to toggle source
# File lib/lev/routine.rb, line 275 def find_status(id) find_status_proc.call(id) end
job_class()
click to toggle source
# File lib/lev/routine.rb, line 217 def job_class @job_class || Lev::ActiveJob::Base end
nested_routines()
click to toggle source
# File lib/lev/routine.rb, line 258 def nested_routines @nested_routines ||= {} end
perform_later(*args, **kwargs, &block)
click to toggle source
# File lib/lev/routine.rb, line 225 def perform_later(*args, **kwargs, &block) # Delegate to a subclass of Lev::Routine::ActiveJob::Base job_class.new.perform_later(self, active_job_enqueue_options, *args, **kwargs, &block) end
raise_fatal_errors?()
click to toggle source
# File lib/lev/routine.rb, line 262 def raise_fatal_errors? @raise_fatal_errors || (Lev.configuration.raise_fatal_errors && @raise_fatal_errors.nil?) end
set(options)
click to toggle source
# File lib/lev/routine.rb, line 213 def set(options) Lev::ActiveJob::ConfiguredJob.new(self, options) end
transaction_isolation()
click to toggle source
# File lib/lev/routine.rb, line 246 def transaction_isolation @transaction_isolation ||= TransactionIsolation.mysql_default end
uses_routine(routine_class, options={})
click to toggle source
Called at a routine’s class level to foretell which other routines will be used when this routine executes. Helpful for figuring out ahead of time what kind of transaction isolation level should be used.
# File lib/lev/routine.rb, line 233 def uses_routine(routine_class, options={}) symbol = options[:as] || class_to_symbol(routine_class) warn("Routine #{routine_class} has already been registered") if nested_routines[symbol] nested_routines[symbol] = { routine_class: routine_class, options: options } transaction_isolation.replace_if_more_isolated(routine_class.transaction_isolation) end