Sha256: a2684cc29207b86547882bea0a8c146eef433c288437c6953d753642d39dc959
Contents?: true
Size: 914 Bytes
Versions: 2
Compression:
Stored size: 914 Bytes
Contents
# frozen_string_literal: true module Qyu module Workers module Concerns module Callback # Meant to add callbacks to Qyu::Worker # # Usage: # # Qyu::Worker.new do # callback :execute, :after do # # Do something after execution # end # end # def callback(method, type, &block) @_callbacks ||= {} @_callbacks[method] ||= {} @_callbacks[method][type] = block end 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 def find_callback(method, type) @_callbacks.dig(method, type) if @_callbacks.is_a?(Hash) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
qyu-1.0.1 | lib/qyu/workers/concerns/callback.rb |
qyu-1.0.0 | lib/qyu/workers/concerns/callback.rb |