Class: Operationable::Runners::Separate

Inherits:
Base
  • Object
show all
Defined in:
lib/operationable/runners/separate.rb

Instance Attribute Summary

Attributes inherited from Base

#callbacks, #params, #record, #result, #user

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Operationable::Runners::Base

Class Method Details

.call(options, props) ⇒ Object



21
22
23
# File 'lib/operationable/runners/separate.rb', line 21

def self.call(options, props)
  options[:callback_class_name].constantize.new(props).method(options[:callback_method_name]).call
end

Instance Method Details

#options(callback_method_name, queue) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/operationable/runners/separate.rb', line 13

def options(callback_method_name, queue)
  { type: 'separate',
    callback_class_name: callback_class_name,
    callback_method_name: callback_method_name,
    queue: queue,
    op_id: persist_operation.id }
end

#process(callback_method_name:, queue: nil) ⇒ Object



9
10
11
# File 'lib/operationable/runners/separate.rb', line 9

def process(callback_method_name:, queue: nil)
  (queue.blank? ? self.class : OperationJob.method(perform_method)).call(options(callback_method_name, queue), props)
end

#runObject



5
6
7
# File 'lib/operationable/runners/separate.rb', line 5

def run
  check_callbacks.each { |callback| process(callback) }
end