## Changes Between 1.6.0 and 1.7.0 ### Blank Tags by Default The `:tags` attribute is no longer required by `Client#update_user`. If not provided, a blank list of tags will be used. ## Changes Between 1.5.0 and 1.6.0 ### Definition Upload Support The client now can upload definitions (of queues, exchanges, etc): ``` ruby defs = { :queues => [{ :name => 'my-definition-queue', :vhost => '/', :durable => true, :auto_delete => false, :arguments => { "x-dead-letter-exchange" => 'dead' } }] }.to_json c.upload_definitions(defs) ``` Contributed by Pol Miro. ## Changes Between 1.4.0 and 1.5.0 ### Support for URIs containing a path If provided endpoint contains a path, it will be used instead of `/api`. Contributed by Pol Miro. ## Changes Between 1.3.0 and 1.4.0 ### Protocol Ports for Non-Administrators `Client#protocol_ports` no longer fails with a nil pointer exception for non-administrators. ### Hashie Upgrade The library now depends on `hashie ~> 3.2`. Contributed by Damon Morgan. ### MultiJSON Upgrade The library now depends on `multi_json ~> 1.9`. Contributed by Damon Morgan. ## Changes Between 1.2.0 and 1.3.0 ### Faraday Upgrade The project now depends on Faraday `0.9.x`. Contributed by John Murphy. ### Exchange Deletion `RabbitMQ::HTTP::Client#delete_exchange` is a new function that deletes exchanges: ``` ruby c.delete_exchange("/", "an.exchange") ``` Contributed by Matt Bostock. ## Changes Between 1.1.0 and 1.2.0 ### Ruby 1.8 Compatibility Restored The library no longer uses 1.9-specific hash syntax. ## Changes Between 1.0.0 and 1.1.0 ### declare_exchange It is now possible to declare an exchange over HTTP API using `RabbitMQ::HTTP::Client#declare_exchange`: ``` ruby c.declare_exchange("/", exchange_name, :durable => false, :type => "fanout") ``` Contributed by Jake Davis (Simple). ## Changes Between 0.9.0 and 1.0.0 ### Hashi Upgrade The library now depends on `hashie ~> 2.0.5`. ### Faraday Upgrade The library now depends on `faraday ~> 0.8.9`. ### MultiJSON Upgrade The library now depends on `multi_json ~> 1.8.4`. ## Changes Between 0.8.0 and 0.9.0 ### New Queue Binding Methods `RabbitMQ::HTTP::Client#queue_binding_info`, `RabbitMQ::HTTP::Client#bind_queue`, and `RabbitMQ::HTTP::Client#delete_queue_binding` are new methods that operate on queue bindings: ``` ruby c = RabbitMQ::HTTP::Client.new("http://guest:guest@127.0.0.1:15672") c.bind_queue("/", "a.queue", "an.exchange", "routing.key") c.queue_binding_info("/", "a.queue", "an.exchange", "properties.key") c.delete_queue_binding("/", "a.queue", "an.exchange", "properties.key") ``` Contributed by Noah Magram. ## Changes Between 0.7.0 and 0.8.0 ### Client#protocol_ports `RabbitMQ::HTTP::Client#enabled_protocols` is a new method that returns a hash of enabled protocols to their ports. The keys are the same as returned by `Client#enabled_protocols`: ``` ruby # when TLS and MQTT plugin is enabled c.protocol_ports # => {"amqp" => 5672, "amqp/ssl" => 5671, "mqtt" => 1883} ``` ### Client#enabled_protocols `RabbitMQ::HTTP::Client#enabled_protocols` is a new method that returns a list of enabled protocols. Some common values are: * `amqp` (AMQP 0-9-1) * `amqp/ssl` (AMQP 0-9-1 with TLS enabled) * `mqtt` * `stomp` ``` ruby # when TLS and MQTT plugin is enabled c.enabled_protocols # => ["amqp", "amqp/ssl", "mqtt"] ``` ## Changes Between 0.6.0 and 0.7.0 ### Support for Basic HTTP Auth Credentials in URI It is now possible to pass credentials in the endpoint URI: ``` ruby c = RabbitMQ::HTTP::Client.new("https://guest:guest@127.0.0.1:15672/") ``` ## Changes Between 0.5.0 and 0.6.0 ### Support for Advanced Connection Options It is now possible to pass more options to Faraday connection, for example, HTTPS related ones: ``` ruby c = RabbitMQ::HTTP::Client.new("https://127.0.0.1:15672/", username: "guest", password: "guest", ssl: { client_cer: ..., client_key: ..., ca_file: ..., ca_path: ..., cert_store: ... }) ``` Any options other than `username` and `password` will be passed on to `Faraday::Connection`. ## Changes Between 0.4.0 and 0.5.0 ### Endpoint Reader `RabbitMQ::HTTP::Client#endpoint` is a new reader (getter) that makes it possible to access the URI a client instance uses. ## Changes Between 0.3.0 and 0.4.0 ### Meaningful Exceptions for 4xx and 5xx Responses `4xx` and `5xx` responses now will result in meaningful exceptions being raised. For example, `404` responses will raise `Faraday::Error::ResourceNotFound`. ## Changes Between 0.2.0 and 0.3.0 ### MultiJSON Upgrade The library now depends on `multi_json ~> 1.7.0`. ## Changes Between 0.1.0 and 0.2.0 ### Support for more HTTP API operations * Operations on queues * Operations on users * Operations on permissions * Operations on parameters * Operations on policies ## Original Release: 0.1.0 ### Support for many HTTP API operations * Status overview * Cluster nodes information * Operations on exchanges, queues, bindings * Operations on connections