Parent

Files

Moqueue::MockQueue

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 11
11:       def new(name)
12:         if existing_queue = MockBroker.instance.find_queue(name)
13:           return existing_queue
14:         end
15:         super
16:       end
new(name) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 20
20:     def initialize(name)
21:       @name = name
22:       MockBroker.instance.register_queue(self)
23:     end

Public Instance Methods

acked_messages() click to toggle source
    # File lib/moqueue/mock_queue.rb, line 91
91:     def acked_messages
92:       received_messages_and_headers.map do |r|
93:         r[:message] if @ack_msgs && r[:headers].received_ack?
94:       end
95:     end
bind(exchange, key=nil) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 74
74:     def bind(exchange, key=nil)
75:       exchange.attach_queue(self, key)
76:       self
77:     end
callback_defined?() click to toggle source
     # File lib/moqueue/mock_queue.rb, line 102
102:     def callback_defined?
103:       !!message_handler_callback
104:     end
null_subscribe() click to toggle source

configures a do-nothing subscribe block to force received messages to be processed and stored in #

     # File lib/moqueue/mock_queue.rb, line 109
109:     def null_subscribe
110:       subscribe {|msg| nil}
111:       self
112:     end
prefetch(size) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 56
56:     def prefetch(size)
57:       # noop
58:     end
publish(message, opts = {}) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 64
64:     def publish(message, opts = {})
65:       if message_handler_callback
66:         receive(message)
67:       else
68:         deferred_publishing_fibers << Fiber.new do
69:           receive(message)
70:         end
71:       end
72:     end
receive(message, header_opts={}) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 34
34:     def receive(message, header_opts={})
35:       if callback = message_handler_callback
36:         headers = MockHeaders.new(header_opts)
37:         callback.call(*(callback.arity == 1 ? [message] : [headers, message]))
38:         received_messages_and_headers << {:message => message, :headers => headers}
39:       else
40:         receive_message_later(message, header_opts)
41:       end
42:     end
received_ack_for_message?(message_content) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 60
60:     def received_ack_for_message?(message_content)
61:       acked_messages.include?(message_content)
62:     end
received_headers() click to toggle source
    # File lib/moqueue/mock_queue.rb, line 87
87:     def received_headers
88:       received_messages_and_headers.map{ |r| r[:headers] }
89:     end
received_message?(message_content) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 44
44:     def received_message?(message_content)
45:       received_messages.include?(message_content)
46:     end
received_messages() click to toggle source
    # File lib/moqueue/mock_queue.rb, line 83
83:     def received_messages
84:       received_messages_and_headers.map{|r| r[:message] }
85:     end
received_messages_and_headers() click to toggle source
    # File lib/moqueue/mock_queue.rb, line 79
79:     def received_messages_and_headers
80:       @received_messages_and_headers ||= []
81:     end
received_routing_key?(key) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 48
48:     def received_routing_key?(key)
49:       received_messages_and_headers.find { |r| r[:headers] && r[:headers].properties[:routing_key] == key }
50:     end
run_callback(*args) click to toggle source
     # File lib/moqueue/mock_queue.rb, line 97
 97:     def run_callback(*args)
 98:       callback = message_handler_callback
 99:       callback.call(*(callback.arity == 1 ? [args.first] : args))
100:     end
subscribe(opts={}, &block) click to toggle source
    # File lib/moqueue/mock_queue.rb, line 25
25:     def subscribe(opts={}, &block)
26:       if @subscribe_block 
27:         raise DoubleSubscribeError, "you can't subscribe to the same queue twice"
28:       end
29:       @subscribe_block = block
30:       @ack_msgs = opts[:ack] || false
31:       process_unhandled_messages
32:     end
unsubscribe() click to toggle source
    # File lib/moqueue/mock_queue.rb, line 52
52:     def unsubscribe
53:       true
54:     end

Private Instance Methods

deferred_publishing_fibers() click to toggle source
     # File lib/moqueue/mock_queue.rb, line 122
122:     def deferred_publishing_fibers
123:       @deferred_publishing_fibers ||= []
124:     end
message_handler_callback() click to toggle source
     # File lib/moqueue/mock_queue.rb, line 126
126:     def message_handler_callback
127:       @subscribe_block || @pop_block || false
128:     end
process_unhandled_messages() click to toggle source
     # File lib/moqueue/mock_queue.rb, line 130
130:     def process_unhandled_messages
131:       while fiber = deferred_publishing_fibers.shift
132:         fiber.resume
133:       end
134:     end
receive_message_later(message, header_opts) click to toggle source
     # File lib/moqueue/mock_queue.rb, line 116
116:     def receive_message_later(message, header_opts)
117:       deferred_publishing_fibers << Fiber.new do
118:         self.receive(message, header_opts)
119:       end
120:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.