class RabbitmqClient::Lifecycle
Lifecycle
defines the rabbitmq_client lifecycle events, callbacks and manage the execution of these callbacks
Constants
- EVENTS
Attributes
callbacks[R]
Public Class Methods
new()
click to toggle source
# File lib/rabbitmq_client/lifecycle.rb, line 15 def initialize @callbacks = EVENTS.keys.each_with_object({}) do |key, hash| hash[key] = Callback.new end end
Public Instance Methods
after(event, &block)
click to toggle source
# File lib/rabbitmq_client/lifecycle.rb, line 25 def after(event, &block) add(:after, event, &block) end
before(event, &block)
click to toggle source
# File lib/rabbitmq_client/lifecycle.rb, line 21 def before(event, &block) add(:before, event, &block) end
run_callbacks(event, *args, &block)
click to toggle source
# File lib/rabbitmq_client/lifecycle.rb, line 29 def run_callbacks(event, *args, &block) missing_callback(event) unless @callbacks.key?(event) event_obj = EVENTS[event] event_size = event_obj.size unless event_size == args.size raise ArgumentError, "Callback #{event} expects\ #{event_size} parameter(s): #{event_obj.join(', ')}" end @callbacks[event].execute(*args, &block) end
Private Instance Methods
add(type, event, &block)
click to toggle source
# File lib/rabbitmq_client/lifecycle.rb, line 44 def add(type, event, &block) missing_callback(event) unless @callbacks.key?(event) @callbacks[event].add(type, &block) end
missing_callback(event)
click to toggle source
# File lib/rabbitmq_client/lifecycle.rb, line 49 def missing_callback(event) raise InvalidCallback, "Unknown callback event: #{event}" end