class Operationable::Runners::Base
Attributes
callbacks[R]
params[R]
record[R]
result[R]
user[R]
Public Class Methods
new(record, params, result, user)
click to toggle source
# File lib/operationable/runners/base.rb, line 45 def initialize(record, params, result, user) @record = record @params = params @result = result @user = user @callbacks = [] initialize_callbacks end
Public Instance Methods
check_status?()
click to toggle source
# File lib/operationable/runners/base.rb, line 59 def check_status? true end
ensure_enqueue()
click to toggle source
# File lib/operationable/runners/base.rb, line 70 def ensure_enqueue end
job_async_execute_method()
click to toggle source
# File lib/operationable/runners/base.rb, line 82 def job_async_execute_method :perform_later end
job_class()
click to toggle source
# File lib/operationable/runners/base.rb, line 74 def job_class 'OperationJob' end
job_sync_execute_method()
click to toggle source
# File lib/operationable/runners/base.rb, line 78 def job_sync_execute_method :perform_later end
persist?()
click to toggle source
# File lib/operationable/runners/base.rb, line 63 def persist? true end
run()
click to toggle source
# File lib/operationable/runners/base.rb, line 67 def run end
store_callback(q_options)
click to toggle source
# File lib/operationable/runners/base.rb, line 55 def store_callback(q_options) q_options end
Private Instance Methods
action_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 149 def action_name operation_class_name.split('::')[-2..-1].join(' ').titleize end
activity()
click to toggle source
# File lib/operationable/runners/base.rb, line 145 def activity operation_class_name.split('::').last.underscore end
callback_class_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 125 def callback_class_name "#{operation_class_name}::Callback" end
check_callbacks()
click to toggle source
# File lib/operationable/runners/base.rb, line 106 def check_callbacks callbacks.find_all do |callback| satisfy = specification&.try("should_#{callback[:callback_method_name]}".to_sym) satisfy.nil? || satisfy end end
class_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 153 def class_name self.class.name end
delayer()
click to toggle source
# File lib/operationable/runners/base.rb, line 117 def delayer @delayer ||= delayer_class_name.constantize.new(record, user, params, result, activity, action_name) end
delayer_class_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 137 def delayer_class_name "#{operation_class_name}::Delayer" end
initialize_callbacks()
click to toggle source
# File lib/operationable/runners/base.rb, line 92 def initialize_callbacks end
operation_class_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 141 def operation_class_name self.class.name.chomp('::Runner') end
perform(job_class_name, args, delayed_params)
click to toggle source
# File lib/operationable/runners/base.rb, line 161 def perform(job_class_name, args, delayed_params) job_class_name.to_s.constantize.set(delayed_params).method(perform_method).call(args) end
perform_method()
click to toggle source
# File lib/operationable/runners/base.rb, line 157 def perform_method sync? ? job_sync_execute_method : job_async_execute_method end
props()
click to toggle source
# File lib/operationable/runners/base.rb, line 88 def props serializer_instance.serialize end
push_to_queue(*callback_method_names, job_class_name: nil, queue: nil, params: {})
click to toggle source
# File lib/operationable/runners/base.rb, line 95 def push_to_queue(*callback_method_names, job_class_name: nil, queue: nil, params: {}) callback_method_names.each do |callback_method_name| callbacks << { callback_method_name: callback_method_name.to_s, job_class_name: job_class_name.nil? ? job_class.to_s : job_class_name.to_s, queue: queue.to_s, params: params } end end
serializer_class_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 129 def serializer_class_name "#{operation_class_name}::Serializer" end
serializer_instance()
click to toggle source
# File lib/operationable/runners/base.rb, line 113 def serializer_instance @serializer_instance ||= serializer_class_name.constantize.new(record, user, params, result, activity, action_name) end
specification()
click to toggle source
# File lib/operationable/runners/base.rb, line 121 def specification @specification ||= specification_class_name.constantize.new(record, user, params, result, activity, action_name) end
specification_class_name()
click to toggle source
# File lib/operationable/runners/base.rb, line 133 def specification_class_name "#{operation_class_name}::Specification" end
sync?()
click to toggle source
# File lib/operationable/runners/base.rb, line 165 def sync? %w(test development).include? Rails.env end