Parent

AMQP::RPC::Client

@private

Attributes

identifier[RW]

Public Class Methods

new(channel, server_queue_name) click to toggle source
     # File lib/amqp/deprecated/rpc.rb, line 99
 99:       def initialize(channel, server_queue_name)
100:         @channel           = channel
101:         @exchange          = AMQP::Exchange.default(@channel)
102:         @server_queue_name = server_queue_name
103: 
104:         @handlers          = Hash.new
105:         @queue             = channel.queue("__amqp_gem_rpc_client_#{rand(1_000_000)}", :auto_delete => true)
106: 
107:         @queue.subscribe do |header, payload|
108:           *response_args = Marshal.load(payload)
109:           handler        = @handlers[header.message_id]
110: 
111:           handler.call(*response_args)
112:         end
113:       end

Public Instance Methods

method_missing(selector, *args, &block) click to toggle source
     # File lib/amqp/deprecated/rpc.rb, line 115
115:       def method_missing(selector, *args, &block)
116:         @channel.once_open do
117:           message_id   = "message_identifier_#{rand(1_000_000)}"
118: 
119:           if block
120:             @handlers[message_id] = block
121:             @exchange.publish(Marshal.dump([selector, *args]), :routing_key => @server_queue_name, :reply_to => @queue.name, :message_id => message_id)
122:           else
123:             @exchange.publish(Marshal.dump([selector, *args]), :routing_key => @server_queue_name, :message_id => message_id)
124:           end
125:         end
126:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.