Module: AMQ::Client

Defined in:
lib/amq/client/adapter.rb,
lib/amq/client.rb,
lib/amq/client/queue.rb,
lib/amq/client/entity.rb,
lib/amq/client/channel.rb,
lib/amq/client/logging.rb,
lib/amq/client/version.rb,
lib/amq/client/exchange.rb,
lib/amq/client/openable.rb,
lib/amq/client/settings.rb,
lib/amq/client/callbacks.rb,
lib/amq/client/exceptions.rb,
lib/amq/client/async/queue.rb,
lib/amq/client/async/entity.rb,
lib/amq/client/async/adapter.rb,
lib/amq/client/async/channel.rb,
lib/amq/client/async/consumer.rb,
lib/amq/client/async/exchange.rb,
lib/amq/client/adapters/coolio.rb,
lib/amq/client/async/callbacks.rb,
lib/amq/client/framing/io/frame.rb,
lib/amq/client/handlers_registry.rb,
lib/amq/client/server_named_entity.rb,
lib/amq/client/framing/string/frame.rb,
lib/amq/client/async/adapters/coolio.rb,
lib/amq/client/adapters/event_machine.rb,
lib/amq/client/consumer_tag_generator.rb,
lib/amq/client/extensions/rabbitmq/basic.rb,
lib/amq/client/extensions/rabbitmq/cancel.rb,
lib/amq/client/extensions/rabbitmq/confirm.rb,
lib/amq/client/async/adapters/event_machine.rb,
lib/amq/client/async/extensions/rabbitmq/basic.rb,
lib/amq/client/async/extensions/rabbitmq/cancel.rb,
lib/amq/client/async/extensions/rabbitmq/confirm.rb

Overview

For overview of AMQP client adapters API, see Adapter

Defined Under Namespace

Modules: Async, Framing, Logging, Openable, ServerNamedEntity, Settings Classes: BadLengthError, ConnectionClosedError, ConsumerTagGenerator, HandlersRegistry, InconsistentDataError, MissingHandlerError, NoFinalOctetError, PossibleAuthenticationFailureError, TCPConnectionFailed, UnknownExchangeTypeError

Constant Summary collapse

Queue =
Async::Queue
ProtocolMethodHandlers =
Async::ProtocolMethodHandlers
Entity =
Async::Entity
VERSION =
"1.0.3"

Class Method Summary collapse

Class Method Details

.adaptersHash

List available adapters as a hash of { :adapter_name => metadata }, where metadata are hash with :path and :const_name keys.

Returns:

  • (Hash)


28
29
30
# File 'lib/amq/client.rb', line 28

def self.adapters
  @adapters ||= (self.async_adapters)
end

.async_adaptersHash

List available asynchronous adapters.

Returns:

  • (Hash)

See Also:



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/amq/client.rb', line 37

def self.async_adapters
  @async_adapters ||= {
    :eventmachine  => {
      :path       => "amq/client/async/adapters/eventmachine",
      :const_name => "Async::EventMachineClient"
    },
    :event_machine => {
      :path       => "amq/client/async/adapters/eventmachine",
      :const_name => "Async::EventMachineClient"
    },
    :coolio        => {
      :path       => "amq/client/async/adapters/coolio",
      :const_name => "Async::CoolioClient"
    }
  }
end

.connect(settings = nil, &block) ⇒ Object

Establishes connection to AMQ broker using given adapter (defaults to the socket adapter) and returns it. The new connection object is yielded to the block if it is given.

Examples:

AMQ::Client.connect(adapter: "socket") do |client|
  # Use the client.
end

Parameters:

  • Connection (Hash)

    parameters, including :adapter to use.



65
66
67
68
69
# File 'lib/amq/client.rb', line 65

def self.connect(settings = nil, &block)
  adapter  = (settings && settings.delete(:adapter))
  adapter  = load_adapter(adapter)
  adapter.connect(settings, &block)
end

.load_adapter(adapter) ⇒ Object

Loads adapter given its name as a Symbol.

Raises:

  • (InvalidAdapterNameError)

    When loading attempt failed (LoadError was raised).



74
75
76
77
78
79
80
81
# File 'lib/amq/client.rb', line 74

def self.load_adapter(adapter)
  meta = self.adapters[adapter.to_sym]

  require meta[:path]
  eval(meta[:const_name])
rescue LoadError
  raise InvalidAdapterNameError.new(adapter)
end