module Qyu::Workers::Concerns::Callback

Qyu::Workers::Concerns::Callback

Meant to add callbacks to Qyu::Worker

Usage:

Qyu::Worker.new do

callback :execute, :after do
  # Do something after execution
end

end

Public Instance Methods

callback(method, type, &block) click to toggle source

Adds a callback option to worker

callback :execute, :after do
  # Do something after execution
end

callback :execute, :before do
  # Do something before execution
end

callback :execute, :around do
  # Do something around execution
end

@param [Symbol] just :execute for now @param [Symbol] callback type @param [block] block to execute as callback

# File lib/qyu/workers/concerns/callback.rb, line 36
def callback(method, type, &block)
  @_callbacks ||= {}
  @_callbacks[method] ||= {}
  @_callbacks[method][type] = block
end
run_callbacks(method) { || ... } click to toggle source
# File lib/qyu/workers/concerns/callback.rb, line 42
def run_callbacks(method, &block)
  find_callback(method, :before)&.call
  find_callback(method, :around) ? find_callback(method, :around).call(block) : yield
  find_callback(method, :after)&.call
end

Private Instance Methods

find_callback(method, type) click to toggle source
# File lib/qyu/workers/concerns/callback.rb, line 50
def find_callback(method, type)
  @_callbacks.dig(method, type) if @_callbacks.is_a?(Hash)
end