Module: AMQ::Client::Async::Callbacks
Instance Method Summary collapse
-
#clear_callbacks(event) ⇒ Object
prepend_callback(event, &block).
- #define_callback(event, callable = nil, &block) ⇒ Object (also: #append_callback)
- #exec_callback(name, *args, &block) ⇒ Object
- #exec_callback_once(name, *args, &block) ⇒ Object
- #exec_callback_once_yielding_self(name, *args, &block) ⇒ Object
- #exec_callback_yielding_self(name, *args, &block) ⇒ Object
- #has_callback?(name) ⇒ Boolean
- #prepend_callback(event, &block) ⇒ Object
- #redefine_callback(event, callable = nil, &block) ⇒ Object
Instance Method Details
#clear_callbacks(event) ⇒ Object
prepend_callback(event, &block)
33 34 35 |
# File 'lib/amq/client/async/callbacks.rb', line 33 def clear_callbacks(event) @callbacks[event].clear if @callbacks[event] end |
#define_callback(event, callable = nil, &block) ⇒ Object Also known as: append_callback
16 17 18 19 20 21 22 23 |
# File 'lib/amq/client/async/callbacks.rb', line 16 def define_callback(event, callable = nil, &block) f = (callable || block) @callbacks[event] ||= [] @callbacks[event] << f if f self end |
#exec_callback(name, *args, &block) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/amq/client/async/callbacks.rb', line 38 def exec_callback(name, *args, &block) list = Array(@callbacks[name]) if list.any? list.each { |c| c.call(*args, &block) } end end |
#exec_callback_once(name, *args, &block) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/amq/client/async/callbacks.rb', line 45 def exec_callback_once(name, *args, &block) list = (@callbacks.delete(name) || Array.new) if list.any? list.each { |c| c.call(*args, &block) } end end |
#exec_callback_once_yielding_self(name, *args, &block) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/amq/client/async/callbacks.rb', line 59 def exec_callback_once_yielding_self(name, *args, &block) list = (@callbacks.delete(name) || Array.new) if list.any? list.each { |c| c.call(self, *args, &block) } end end |
#exec_callback_yielding_self(name, *args, &block) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/amq/client/async/callbacks.rb', line 52 def exec_callback_yielding_self(name, *args, &block) list = Array(@callbacks[name]) if list.any? list.each { |c| c.call(self, *args, &block) } end end |
#has_callback?(name) ⇒ Boolean
67 68 69 |
# File 'lib/amq/client/async/callbacks.rb', line 67 def has_callback?(name) @callbacks[name] && !@callbacks[name].empty? end |
#prepend_callback(event, &block) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/amq/client/async/callbacks.rb', line 26 def prepend_callback(event, &block) @callbacks[event] ||= [] @callbacks[event].unshift(block) self end |
#redefine_callback(event, callable = nil, &block) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/amq/client/async/callbacks.rb', line 8 def redefine_callback(event, callable = nil, &block) f = (callable || block) # yes, re-assign! @callbacks[event] = [f] self end |