Module: AMQ::Client::Async::Callbacks

Included in:
Adapter, Consumer, Entity
Defined in:
lib/amq/client/async/callbacks.rb

Instance Method Summary collapse

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

Returns:

  • (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