amqp 0.8.0.rc1 → 0.8.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +15 -3
 - data/README.textile +4 -5
 - data/amqp.gemspec +1 -1
 - data/docs/RabbitMQVersions.textile +21 -0
 - data/examples/extensions/rabbitmq/per_queue_message_ttl.rb +57 -0
 - data/examples/tls_certificates/client/cert.pem +18 -0
 - data/examples/tls_certificates/client/key.pem +27 -0
 - data/examples/tls_certificates/client/keycert.p12 +0 -0
 - data/examples/tls_certificates/client/req.pem +15 -0
 - data/examples/tls_certificates/server/cert.pem +18 -0
 - data/examples/tls_certificates/server/key.pem +27 -0
 - data/examples/tls_certificates/server/keycert.p12 +0 -0
 - data/examples/tls_certificates/server/req.pem +15 -0
 - data/examples/tls_certificates/testca/cacert.cer +0 -0
 - data/examples/tls_certificates/testca/cacert.pem +17 -0
 - data/examples/tls_certificates/testca/certs/01.pem +18 -0
 - data/examples/tls_certificates/testca/certs/02.pem +18 -0
 - data/examples/tls_certificates/testca/index.txt +2 -0
 - data/examples/tls_certificates/testca/index.txt.attr +1 -0
 - data/examples/tls_certificates/testca/index.txt.attr.old +1 -0
 - data/examples/tls_certificates/testca/index.txt.old +1 -0
 - data/examples/tls_certificates/testca/openssl.cnf +53 -0
 - data/examples/tls_certificates/testca/private/cakey.pem +27 -0
 - data/examples/tls_certificates/testca/serial +1 -0
 - data/examples/tls_certificates/testca/serial.old +1 -0
 - data/lib/amqp/channel.rb +9 -4
 - data/lib/amqp/exchange.rb +4 -1
 - data/lib/amqp/queue.rb +8 -2
 - data/lib/amqp/version.rb +1 -1
 - data/spec/integration/automatic_binding_for_default_direct_exchange_spec.rb +11 -3
 - data/spec/integration/basic_get_spec.rb +7 -3
 - data/spec/integration/queue_declaration_spec.rb +45 -8
 - metadata +56 -61
 
    
        data/CHANGELOG
    CHANGED
    
    | 
         @@ -1,14 +1,26 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = Version 0.8.0
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
              * [API] AMQP::Exchange#initialize now accepts :arguments option that takes a hash. Brokers
         
     | 
| 
      
 4 
     | 
    
         
            +
                      may implement AMQP extensions using (usually x-prefixed) declaration arguments.
         
     | 
| 
      
 5 
     | 
    
         
            +
              * [API] AMQP::Queue#initialize now accepts :arguments option that takes a hash. RabbitMQ
         
     | 
| 
      
 6 
     | 
    
         
            +
                      recognizes x-message-ttl argument and uses it as message TTL in milliseconds for
         
     | 
| 
      
 7 
     | 
    
         
            +
            	  queue that is being declared.
         
     | 
| 
      
 8 
     | 
    
         
            +
              * [API] AMQP#Logger is deprecated. It will be removed before 1.0 release.
         
     | 
| 
      
 9 
     | 
    
         
            +
              * [API] AMQP#fork is deprecated. It will be removed before 1.0 release.
         
     | 
| 
      
 10 
     | 
    
         
            +
              * [API] AMQP::RPC is deprecated. It will be removed before 1.0 release.
         
     | 
| 
      
 11 
     | 
    
         
            +
              * [FEATURE] Significant improvements to the documentation
         
     | 
| 
      
 12 
     | 
    
         
            +
              * [FEATURE] Support for RabbitMQ extensions to AMQP 0.9.1
         
     | 
| 
      
 13 
     | 
    
         
            +
              * [API] AMQP::Exchange#publish now accepts (an optional) block that is called as soon as message
         
     | 
| 
      
 14 
     | 
    
         
            +
                      is considered published (EventMachine loop has pushed payload down the network stack).
         
     | 
| 
       3 
15 
     | 
    
         
             
              * [API] AMQP::Channel.new now accepts (an optional) block and yields newly opened channel to it as soon as
         
     | 
| 
       4 
16 
     | 
    
         
             
                      channel.open-ok arrives from the broker.
         
     | 
| 
       5 
17 
     | 
    
         
             
              * [API] AMQP::Header#ack now can acknowledge multiple deliveries
         
     | 
| 
       6 
18 
     | 
    
         
             
              * [API] AMQP::Exchange#delete now takes (an optional) block that is called when exchange.delete-ok response arrives.
         
     | 
| 
       7 
19 
     | 
    
         
             
              * [API] AMQP::Header now implements #to_hash
         
     | 
| 
       8 
     | 
    
         
            -
              * [API] AMQP::Queue#pop block now can take 1, 2 or  
     | 
| 
      
 20 
     | 
    
         
            +
              * [API] AMQP::Queue#pop block now can take 1, 2 or 3 arguments.
         
     | 
| 
       9 
21 
     | 
    
         
             
                      1 argument means handler is only interested in content payload
         
     | 
| 
       10 
     | 
    
         
            -
            	  2 arguments  
     | 
| 
       11 
     | 
    
         
            -
            	   
     | 
| 
      
 22 
     | 
    
         
            +
            	  2 arguments mean handler is interested in headers and the content
         
     | 
| 
      
 23 
     | 
    
         
            +
            	  3 arguments mean handler is interested in headers, content and AMQP method instance
         
     | 
| 
       12 
24 
     | 
    
         
             
              * [API] AMQP::Queue#purge  now takes an optional block which is called when queue.purge-ok response arrives.
         
     | 
| 
       13 
25 
     | 
    
         
             
              * [API] AMQP::Queue#delete now takes an optional block which is called when queue.delete-ok response arrives.
         
     | 
| 
       14 
26 
     | 
    
         
             
              * [API] AMQP::Queue#delete now accepts :nowait option.
         
     | 
    
        data/README.textile
    CHANGED
    
    | 
         @@ -52,9 +52,7 @@ h3. Install RabbitMQ 
     | 
|
| 
       52 
52 
     | 
    
         | 
| 
       53 
53 
     | 
    
         
             
            Please refer to "RabbitMQ installation guide":http://www.rabbitmq.com/install.html
         
     | 
| 
       54 
54 
     | 
    
         
             
            Note that for Ubuntu and Debian we strongly advice that you use "RabbitMQ apt repository":http://www.rabbitmq.com/debian.html#apt
         
     | 
| 
       55 
     | 
    
         
            -
            that has recent versions of RabbitMQ.  
     | 
| 
       56 
     | 
    
         
            -
            that only supports AMQP protocol 0.8. amqp gem 0.8.0 and later *will not work with RabbitMQ versions
         
     | 
| 
       57 
     | 
    
         
            -
            before 2.0*.
         
     | 
| 
      
 55 
     | 
    
         
            +
            that has recent versions of RabbitMQ. Learn more in {file:docs/RabbitMQVersions.textile RabbitMQ versions} section.
         
     | 
| 
       58 
56 
     | 
    
         | 
| 
       59 
57 
     | 
    
         | 
| 
       60 
58 
     | 
    
         
             
            h3. Install the gem
         
     | 
| 
         @@ -146,7 +144,7 @@ gem "amqp", :git => "git://github.com/ruby-amqp/amqp.git", :branch => "master" 
     | 
|
| 
       146 
144 
     | 
    
         
             
            h2. Examples
         
     | 
| 
       147 
145 
     | 
    
         | 
| 
       148 
146 
     | 
    
         
             
            You can find many examples (both real-world cases and simple demonstrations)
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
      
 147 
     | 
    
         
            +
            under "examples directory":https://github.com/ruby-amqp/amqp/tree/master/examples in the repository.
         
     | 
| 
       150 
148 
     | 
    
         | 
| 
       151 
149 
     | 
    
         | 
| 
       152 
150 
     | 
    
         | 
| 
         @@ -183,7 +181,8 @@ h2. Community 
     | 
|
| 
       183 
181 
     | 
    
         | 
| 
       184 
182 
     | 
    
         
             
            h2. License
         
     | 
| 
       185 
183 
     | 
    
         | 
| 
       186 
     | 
    
         
            -
            AMQP gem is licensed under the "Ruby License: 
     | 
| 
      
 184 
     | 
    
         
            +
            AMQP gem is licensed under the "Ruby License":http://www.ruby-lang.org/en/LICENSE.txt.
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
       187 
186 
     | 
    
         | 
| 
       188 
187 
     | 
    
         | 
| 
       189 
188 
     | 
    
         
             
            h2. Credits and copyright information
         
     | 
    
        data/amqp.gemspec
    CHANGED
    
    
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            h1. amqp gem and RabbitMQ versions compatibility
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            h2. Using recent versions on Debian and Ubuntu
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Ubuntu (even 10.10) and Debian both "ship with old RabbitMQ version":http://packages.ubuntu.com/maverick/rabbitmq-server,
         
     | 
| 
      
 6 
     | 
    
         
            +
            that only supports AMQP protocol 0.8. amqp gem 0.8.0 and later *will not work with RabbitMQ versions
         
     | 
| 
      
 7 
     | 
    
         
            +
            before 1.8.0*.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            We strongly recommend that you use "RabbitMQ apt repository":http://www.rabbitmq.com/debian.html#apt that has recent versions of RabbitMQ.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            h2. TLS (SSL) support
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            Note that "before 1.7.0, RabbitMQ did not support TLS":http://www.rabbitmq.com/ssl.html. In order to have TLS
         
     | 
| 
      
 16 
     | 
    
         
            +
            support, RabbitMQ 1.7.0 requires
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
             * Erlang/OTP R13B or later
         
     | 
| 
      
 19 
     | 
    
         
            +
             * Erlang SSL 3.10 or later
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            and recommends using Erlang R141B that ships with Erlang SSL 4.0.1.
         
     | 
| 
         @@ -0,0 +1,57 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            require "bundler"
         
     | 
| 
      
 5 
     | 
    
         
            +
            Bundler.setup
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            $:.unshift(File.expand_path("../../../../lib", __FILE__))
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'amqp'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require "amqp/extensions/rabbitmq"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            AMQP.start do |connection|
         
     | 
| 
      
 12 
     | 
    
         
            +
              puts "Connected!"
         
     | 
| 
      
 13 
     | 
    
         
            +
              AMQP::Channel.new(connection) do |channel, open_ok|
         
     | 
| 
      
 14 
     | 
    
         
            +
                puts "Channel #{channel.id} is now open"
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                channel.on_error do
         
     | 
| 
      
 17 
     | 
    
         
            +
                  puts "Oops, there is a channel-levle exceptions!"
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                x = channel.fanout("amq.fanout")
         
     | 
| 
      
 21 
     | 
    
         
            +
                channel.queue("", :auto_delete => true, :arguments => { "x-message-ttl" => 1000 }) do |q|
         
     | 
| 
      
 22 
     | 
    
         
            +
                  puts "Declared a new server-named qeueue: #{q.name}"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  q.bind(x)
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  EventMachine.add_timer(0.3) do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    10.times do |i|
         
     | 
| 
      
 28 
     | 
    
         
            +
                      puts "Publishing message ##{i}"
         
     | 
| 
      
 29 
     | 
    
         
            +
                      x.publish("Message ##{i}")
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  EventMachine.add_timer(0.7) do
         
     | 
| 
      
 34 
     | 
    
         
            +
                    q.pop do |headers, payload|
         
     | 
| 
      
 35 
     | 
    
         
            +
                      raise "x-message-ttl didn't seem to work (timeout is up)" if payload.nil?
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  EventMachine.add_timer(1.5) do
         
     | 
| 
      
 40 
     | 
    
         
            +
                    q.pop do |headers, payload|
         
     | 
| 
      
 41 
     | 
    
         
            +
                      raise "x-message-ttl didn't seem to work (timeout isn't up)" if payload
         
     | 
| 
      
 42 
     | 
    
         
            +
                    end
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              show_stopper = Proc.new {
         
     | 
| 
      
 48 
     | 
    
         
            +
                AMQP.stop do
         
     | 
| 
      
 49 
     | 
    
         
            +
                  EM.stop
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
              }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              EM.add_timer(3, show_stopper)
         
     | 
| 
      
 55 
     | 
    
         
            +
              Signal.trap('INT',  show_stopper)
         
     | 
| 
      
 56 
     | 
    
         
            +
              Signal.trap('TERM', show_stopper)
         
     | 
| 
      
 57 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIC5DCCAcygAwIBAgIBAjANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
         
     | 
| 
      
 3 
     | 
    
         
            +
            c3RDQTAeFw0xMTA0MTcyMDE4MzNaFw0xMjA0MTYyMDE4MzNaMCcxFDASBgNVBAMT
         
     | 
| 
      
 4 
     | 
    
         
            +
            C2dpb3ZlLmxvY2FsMQ8wDQYDVQQKEwZjbGllbnQwggEiMA0GCSqGSIb3DQEBAQUA
         
     | 
| 
      
 5 
     | 
    
         
            +
            A4IBDwAwggEKAoIBAQC/4CSqBjpmNXoDt5xU0D4ONG3bQXBV4bJid/nmzIvV67pb
         
     | 
| 
      
 6 
     | 
    
         
            +
            v/VpqKxM+UqoV9d09u/H+f/jAKu0of1e1d+1o09JtjJshX4sYREh2/n0umENH1xC
         
     | 
| 
      
 7 
     | 
    
         
            +
            yvWnP0eFTithj9qmVcK5UOvoZKSKYT4gtCIpYhRUQZkEhPYKhvxePztjRIeUghkK
         
     | 
| 
      
 8 
     | 
    
         
            +
            Qc9Qi0/eARm8d3Zdo0ORnnNNIP+G7BjecmJvTLCP/PBDIGG6r1eybNeulNWddgLg
         
     | 
| 
      
 9 
     | 
    
         
            +
            cUq0ACFepxCJW6RdGVrMXhWomScvKssIUMAdDfwM9ffq64MYE2ZLG1OBBPefNI47
         
     | 
| 
      
 10 
     | 
    
         
            +
            wz8h9ak15T2ZpKFU9biXLr/SnGhdhNR31d16pAtLAgMBAAGjLzAtMAkGA1UdEwQC
         
     | 
| 
      
 11 
     | 
    
         
            +
            MAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEB
         
     | 
| 
      
 12 
     | 
    
         
            +
            BQUAA4IBAQCVBpz3gZRr1s48SVF4+C9YLzrSaWsvzKZNDKH7RJ4f1VR//ZY5zsYi
         
     | 
| 
      
 13 
     | 
    
         
            +
            RqSlzSfLM76Y6Y/Eq0iFshtKmuXHKyA4r/Gp+iiCw4U9Htk91rg98wAPc8wOBgn1
         
     | 
| 
      
 14 
     | 
    
         
            +
            OmomH65JpLwxYvUwyt91opGppcqZHWhruhI0fFTFtPIlGKK3KOmJLPpaSvY0YTJ+
         
     | 
| 
      
 15 
     | 
    
         
            +
            vaI3D6yQEMQoZ/mcXk928ofJJvOpUEmvjTW4Orz+T8NmiffLb64P50h86bdV+8tw
         
     | 
| 
      
 16 
     | 
    
         
            +
            FJx6ix6vLF41LU2iPEYHuuXkA7+M5e+POGscJJCb1p6JKxzI6D/UVDnrbhOlqBa5
         
     | 
| 
      
 17 
     | 
    
         
            +
            U45f0oXQ/ndOYUrBRu3BPFdNAjvpa0ld
         
     | 
| 
      
 18 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEowIBAAKCAQEAv+AkqgY6ZjV6A7ecVNA+DjRt20FwVeGyYnf55syL1eu6W7/1
         
     | 
| 
      
 3 
     | 
    
         
            +
            aaisTPlKqFfXdPbvx/n/4wCrtKH9XtXftaNPSbYybIV+LGERIdv59LphDR9cQsr1
         
     | 
| 
      
 4 
     | 
    
         
            +
            pz9HhU4rYY/aplXCuVDr6GSkimE+ILQiKWIUVEGZBIT2Cob8Xj87Y0SHlIIZCkHP
         
     | 
| 
      
 5 
     | 
    
         
            +
            UItP3gEZvHd2XaNDkZ5zTSD/huwY3nJib0ywj/zwQyBhuq9XsmzXrpTVnXYC4HFK
         
     | 
| 
      
 6 
     | 
    
         
            +
            tAAhXqcQiVukXRlazF4VqJknLyrLCFDAHQ38DPX36uuDGBNmSxtTgQT3nzSOO8M/
         
     | 
| 
      
 7 
     | 
    
         
            +
            IfWpNeU9maShVPW4ly6/0pxoXYTUd9XdeqQLSwIDAQABAoIBAQC1hScqcpns98pm
         
     | 
| 
      
 8 
     | 
    
         
            +
            md2bnyYV6iPDuTS9Crfnz/jrD7d6uXekNQXG33uhlnW6rN94F+TgGvKpnojSai14
         
     | 
| 
      
 9 
     | 
    
         
            +
            +nyZKdZotaUeZWvoMCw1DBZ8H5aRA4oU5k1f282dn0YLFjyT/64oAxYq1IuVHknY
         
     | 
| 
      
 10 
     | 
    
         
            +
            RpHK9K6mxygrzl21t94oi0lzr/FT29t8mSlcCQiHxAZWyGE55HvqSS4625P5pvh1
         
     | 
| 
      
 11 
     | 
    
         
            +
            Bh4bZGT285XvlA1qbKbEn8M1IsCZmhPU87U+k6lCvEpBG32cdg9Ykt+BA33OCJj0
         
     | 
| 
      
 12 
     | 
    
         
            +
            OrC6vKjLsIKEfbq8xoTjm7+fofv78B2/zobK7dFMVTAdnju8Tpwu/IDcHnLuKtt2
         
     | 
| 
      
 13 
     | 
    
         
            +
            Vd8GOwGBAoGBAPBO/EeHSvlT46F3jT8ygIhB2rGQ8LBZwQmiejOdfhJ5EPs8KC7U
         
     | 
| 
      
 14 
     | 
    
         
            +
            i9Wfo2Mktn7gr+X9nsY5ZHZoTFaFV1YSoIrsaWFd0RmuQKBcka+A9WPWEgRL0KrG
         
     | 
| 
      
 15 
     | 
    
         
            +
            Km9pHjlYK6WAu+XzKnGlHzasxxLW48mvuMQApE5U5nVbZWonGBA2psRNAoGBAMxn
         
     | 
| 
      
 16 
     | 
    
         
            +
            jHWH51SN5R/ldPvmNPEG8McR1XmzTM9M40snrj6UV8mLMH+KRHgoj664nhm1dnMa
         
     | 
| 
      
 17 
     | 
    
         
            +
            rolKzoFQtS5unwjCGX+Lx9AnwUDDak2Q6LsqedO0PhIwUEtcaLnt8Zf3KWi4v4Es
         
     | 
| 
      
 18 
     | 
    
         
            +
            eAHnYXZ1I7sqjCZ7pAwNBlCfE4Ai1XMH7syv5bn3AoGAYhbrlUrdSJ58eQkyp4w2
         
     | 
| 
      
 19 
     | 
    
         
            +
            uOegnABcrq9EQ2mF1hHAR0wRqWtpv4vUtFMgPzTaJToTsp5us9zza/2ww1RUTPb3
         
     | 
| 
      
 20 
     | 
    
         
            +
            fx12+l5wHrpo+MwwT2IlSCY2XniP6VVQNv/CbYfW8Qx2Jiu2tILBFfE6pS7/9fB7
         
     | 
| 
      
 21 
     | 
    
         
            +
            S84zQyIWm+q9n7HreZrFQbUCgYB4BnnY7eOtp+CaGS/XVrdRrOSn0FYNL3bz5080
         
     | 
| 
      
 22 
     | 
    
         
            +
            a2mKv6rI4x2oVrWb5R1x2GCl8gNK1akVX0LhdlXdnQFvsCIu3hKHrUByWg1K3MN8
         
     | 
| 
      
 23 
     | 
    
         
            +
            XBXLdXRZU9tiVTH9s7YAqRa8sndpT4Zsf8SgPWqs1fAUDNgoZ2GE59QYktvJvye/
         
     | 
| 
      
 24 
     | 
    
         
            +
            M65uwwKBgDnuu0PZ6tn7dKZWYhfBeQT21DsaQglvY3kQ4RHHlHiQnyALKnZqbLu9
         
     | 
| 
      
 25 
     | 
    
         
            +
            wlAZIvRIltWeeQ+oT/Bxq9cD7GrdX8VmZ2xo/gYkJQoduT3AtyLrau8aZFWpiREH
         
     | 
| 
      
 26 
     | 
    
         
            +
            2pDcznE7+DWcKKwr/Z2eQEOoE2KikeuAbMd2SG4vVTLG9w+N2e5I
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         Binary file 
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE REQUEST-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIICbDCCAVQCAQAwJzEUMBIGA1UEAxMLZ2lvdmUubG9jYWwxDzANBgNVBAoTBmNs
         
     | 
| 
      
 3 
     | 
    
         
            +
            aWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/gJKoGOmY1egO3
         
     | 
| 
      
 4 
     | 
    
         
            +
            nFTQPg40bdtBcFXhsmJ3+ebMi9Xrulu/9WmorEz5SqhX13T278f5/+MAq7Sh/V7V
         
     | 
| 
      
 5 
     | 
    
         
            +
            37WjT0m2MmyFfixhESHb+fS6YQ0fXELK9ac/R4VOK2GP2qZVwrlQ6+hkpIphPiC0
         
     | 
| 
      
 6 
     | 
    
         
            +
            IiliFFRBmQSE9gqG/F4/O2NEh5SCGQpBz1CLT94BGbx3dl2jQ5Gec00g/4bsGN5y
         
     | 
| 
      
 7 
     | 
    
         
            +
            Ym9MsI/88EMgYbqvV7Js166U1Z12AuBxSrQAIV6nEIlbpF0ZWsxeFaiZJy8qywhQ
         
     | 
| 
      
 8 
     | 
    
         
            +
            wB0N/Az19+rrgxgTZksbU4EE9580jjvDPyH1qTXlPZmkoVT1uJcuv9KcaF2E1HfV
         
     | 
| 
      
 9 
     | 
    
         
            +
            3XqkC0sCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAOpwkzMe1xYgYz8GOp5xF7
         
     | 
| 
      
 10 
     | 
    
         
            +
            xJtfeh5z9JTt8ogvjS34mri2vNUPQd35H3y6Dhh9ZjLqC03mMV/KOtRCf7oJXpgZ
         
     | 
| 
      
 11 
     | 
    
         
            +
            S8C/NyJWNXB7/QNf9/EWEyOxoWYuvhTxqc0MhLPWrJRjgBKvvCGszBj2kWxDn7OO
         
     | 
| 
      
 12 
     | 
    
         
            +
            //TRq4ao2wQWHIlaP5htsr+rD4IJZqZC8lgptv0u9O/O8vruPUg3k6dnuiKdUyTL
         
     | 
| 
      
 13 
     | 
    
         
            +
            2CDsiKSc6vZKJKL0TguBHSQj/sybAw1lyxIlpxiDcTCbM5FsER6jFydLly+ov3+x
         
     | 
| 
      
 14 
     | 
    
         
            +
            sqMOTieWU3qnaqOwK2ENqQfRMAk3FXEuDzvW4t7oxHB2gJfUJXfEVUWv7Kol25VT
         
     | 
| 
      
 15 
     | 
    
         
            +
            -----END CERTIFICATE REQUEST-----
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIC5DCCAcygAwIBAgIBATANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
         
     | 
| 
      
 3 
     | 
    
         
            +
            c3RDQTAeFw0xMTA0MTcyMDE3MjdaFw0xMjA0MTYyMDE3MjdaMCcxFDASBgNVBAMT
         
     | 
| 
      
 4 
     | 
    
         
            +
            C2dpb3ZlLmxvY2FsMQ8wDQYDVQQKEwZzZXJ2ZXIwggEiMA0GCSqGSIb3DQEBAQUA
         
     | 
| 
      
 5 
     | 
    
         
            +
            A4IBDwAwggEKAoIBAQDdBEpnl+BRcIzZ4M6pB649cT/YUxebTekUq0HhFXATba44
         
     | 
| 
      
 6 
     | 
    
         
            +
            XkSx81Nn5dMVnKgJgJVRhBxU0ZpBt4/wogKaaYI4/OAEgbUcH03OnEXHNLB586eJ
         
     | 
| 
      
 7 
     | 
    
         
            +
            GdaFHkSQOfnUbBIzpQKlQjGLfjmn6mXkLW5lLP5OrN+npuEI4Wq/jgbIQQp9t7Kw
         
     | 
| 
      
 8 
     | 
    
         
            +
            g+Pb9VdJGw0dmMlVfPP8FVCRpGB9lJc1Ayw8gKHg4mi/uyKKFdLV9IWf+DXlvRQ2
         
     | 
| 
      
 9 
     | 
    
         
            +
            vljmQEhSq4bvxnCtm4p5B7AFHefTnldSgGRUZuyI5/4vFMypB3deV+lku95514uN
         
     | 
| 
      
 10 
     | 
    
         
            +
            F0gg66eDAfoNjEmca09P+GBy8LfJsuiBeFV4irtjAgMBAAGjLzAtMAkGA1UdEwQC
         
     | 
| 
      
 11 
     | 
    
         
            +
            MAAwCwYDVR0PBAQDAgUgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEB
         
     | 
| 
      
 12 
     | 
    
         
            +
            BQUAA4IBAQCCmvsAQ1GaPfoKMqCWxyrQ2BNVPWm9J65thZKxZQF01gLox9cpv6+X
         
     | 
| 
      
 13 
     | 
    
         
            +
            QERcD71HStxbzh2B8Hebbk9OplGuyrdgfvzUxcn88kObj6udipDx4YxTJvtff/9w
         
     | 
| 
      
 14 
     | 
    
         
            +
            xeD5OWDVgef0GkB1Rjj3C3W/sfmTZBYfdKuWuwxMG/NxISkQP4aFHwJnPrzNx9ON
         
     | 
| 
      
 15 
     | 
    
         
            +
            bHoKVNrQ2iKAiMysjnFeA/4QuhBQRf41h9SBWwJEW3Ts91TzbgcjCL46Dq29QB9A
         
     | 
| 
      
 16 
     | 
    
         
            +
            4v8t6K/nibP6n53zHbVzdxIEJ2hFKm+vuqaHRW3048Xgww1xkdxrVbyGp9si92i1
         
     | 
| 
      
 17 
     | 
    
         
            +
            KJ5SDIOR8bQ7OXvdvpiyy6p9fIG0Z6w0
         
     | 
| 
      
 18 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEpAIBAAKCAQEA3QRKZ5fgUXCM2eDOqQeuPXE/2FMXm03pFKtB4RVwE22uOF5E
         
     | 
| 
      
 3 
     | 
    
         
            +
            sfNTZ+XTFZyoCYCVUYQcVNGaQbeP8KICmmmCOPzgBIG1HB9NzpxFxzSwefOniRnW
         
     | 
| 
      
 4 
     | 
    
         
            +
            hR5EkDn51GwSM6UCpUIxi345p+pl5C1uZSz+Tqzfp6bhCOFqv44GyEEKfbeysIPj
         
     | 
| 
      
 5 
     | 
    
         
            +
            2/VXSRsNHZjJVXzz/BVQkaRgfZSXNQMsPICh4OJov7siihXS1fSFn/g15b0UNr5Y
         
     | 
| 
      
 6 
     | 
    
         
            +
            5kBIUquG78ZwrZuKeQewBR3n055XUoBkVGbsiOf+LxTMqQd3XlfpZLveedeLjRdI
         
     | 
| 
      
 7 
     | 
    
         
            +
            IOungwH6DYxJnGtPT/hgcvC3ybLogXhVeIq7YwIDAQABAoIBAEu0+YussZET/Ztw
         
     | 
| 
      
 8 
     | 
    
         
            +
            bznlQKEZVuZR6Ccxs+J5m1JvlnmBO4lheSR/lhVj2z9u7vx6SCupFk9TkQRrzWl/
         
     | 
| 
      
 9 
     | 
    
         
            +
            BWdBNvMwY8gHajNc4bkhPKG1AbJ0bPIAoMPuj0vcICDMeBuqrVJQb0o6DaPgHdDg
         
     | 
| 
      
 10 
     | 
    
         
            +
            Yw1TMTVf8CiseC8jj/5XtykHZoGTNTKzusvTjL8hTXFaWQfHQaN3WC1qwrFU2+x6
         
     | 
| 
      
 11 
     | 
    
         
            +
            AJeoSz5F1Q/lykqVAdl2B1L39kiSCAkbVE1GI2qjftCff3ycufYV/fxXeyZwZx9B
         
     | 
| 
      
 12 
     | 
    
         
            +
            NGWUJFyZte8EcrAUoo9B/gvALGDbJsSUsbri+HsRsdOQT3K/giafUipX2FB8Bnxm
         
     | 
| 
      
 13 
     | 
    
         
            +
            nasEfskCgYEA74PrKYo13mTUWRJ2FQTBRHLsMR53PK83RpRRs8361/uCJrjpqfdD
         
     | 
| 
      
 14 
     | 
    
         
            +
            2fUt8kH0rmm2vaWYsllucJoYdYSC9CQdECLzpOZS907PJHXCOsFsBjw74fvjZ+gY
         
     | 
| 
      
 15 
     | 
    
         
            +
            9EXIENZSOSR1PQCWZm+5lL4xi/T+beWBfz0YksErj2GM7dyJeQjkIz8CgYEA7Dpx
         
     | 
| 
      
 16 
     | 
    
         
            +
            ANgrgO9WTu51NIlKt3P7+t6q6MHQcWuzkWMBmVU4zxeyggux+ucMj+l3KLyw7fLT
         
     | 
| 
      
 17 
     | 
    
         
            +
            jRz03eGpqjQT8Yl676uYONhTDC9VOBbLgjShuVOX7lleMLxVFJWqL1FphNghxysF
         
     | 
| 
      
 18 
     | 
    
         
            +
            HVCq1WH0Qu4keirPEotBxkNZRaRYHwRYlVPKMt0CgYEApIHSAj0IlNBiPS995R/X
         
     | 
| 
      
 19 
     | 
    
         
            +
            8sCQU4heU1LxP0vd9gZy1OfNU/VLoE7RzqEkxrDgcu7u8cEMaOsd/L8KL6UtIKyx
         
     | 
| 
      
 20 
     | 
    
         
            +
            PYUUHV2I/I2nnp43Io35OSsj4ipU3eg/Q3+uU0oxPUg6MgT2SDNSnsQnWb6TBj5N
         
     | 
| 
      
 21 
     | 
    
         
            +
            PGxlNV7yIU/aMQF5dqVRtJcCgYEArC4Mn6jwTJImPnHgS+Kl6wFG8JvLxss9uu3d
         
     | 
| 
      
 22 
     | 
    
         
            +
            fGLFj5VmSsvi+Ja9qzstFNf+WlruOwF64KfycqdAmyZKQwsJ6BcSZJyIK6F0Y+V5
         
     | 
| 
      
 23 
     | 
    
         
            +
            f/YMyp/7ZWcOGEetW8uat9KHLqS6OglJOQzK96zl9MLPI5yAQevujSwZrYEUGcd5
         
     | 
| 
      
 24 
     | 
    
         
            +
            KZ5hCqECgYBExYSDJOuSMvKFw66jrLiBedLPuzh1iznwd6e4idpqIUkdhbEuXhHG
         
     | 
| 
      
 25 
     | 
    
         
            +
            +35HeN5cGwjbjXtIjxJsAddTbjvSqaPukmBKLm1ABqF3r0irbNaPcK1xfG9a5L28
         
     | 
| 
      
 26 
     | 
    
         
            +
            /enwipaSWjGovfDXWqmmCvWC8M7iGiqFChI87WlzbvaAapOW0D576Q==
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         Binary file 
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE REQUEST-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIICbDCCAVQCAQAwJzEUMBIGA1UEAxMLZ2lvdmUubG9jYWwxDzANBgNVBAoTBnNl
         
     | 
| 
      
 3 
     | 
    
         
            +
            cnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN0ESmeX4FFwjNng
         
     | 
| 
      
 4 
     | 
    
         
            +
            zqkHrj1xP9hTF5tN6RSrQeEVcBNtrjheRLHzU2fl0xWcqAmAlVGEHFTRmkG3j/Ci
         
     | 
| 
      
 5 
     | 
    
         
            +
            Apppgjj84ASBtRwfTc6cRcc0sHnzp4kZ1oUeRJA5+dRsEjOlAqVCMYt+OafqZeQt
         
     | 
| 
      
 6 
     | 
    
         
            +
            bmUs/k6s36em4Qjhar+OBshBCn23srCD49v1V0kbDR2YyVV88/wVUJGkYH2UlzUD
         
     | 
| 
      
 7 
     | 
    
         
            +
            LDyAoeDiaL+7IooV0tX0hZ/4NeW9FDa+WOZASFKrhu/GcK2binkHsAUd59OeV1KA
         
     | 
| 
      
 8 
     | 
    
         
            +
            ZFRm7Ijn/i8UzKkHd15X6WS73nnXi40XSCDrp4MB+g2MSZxrT0/4YHLwt8my6IF4
         
     | 
| 
      
 9 
     | 
    
         
            +
            VXiKu2MCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQC2aRbyq5pJ34M8jsaEjcks
         
     | 
| 
      
 10 
     | 
    
         
            +
            iov5KP17jfnHnz517/rKxKYRaoxftXVvUbtDLKMQNMAA9K65jetg6/6zqi3QTJwd
         
     | 
| 
      
 11 
     | 
    
         
            +
            52Pn6OYTpzyFov42KRh1OSiRRa5CNXzDlHhosuVnVEOo2rdQggWZTY1clAbjEJmU
         
     | 
| 
      
 12 
     | 
    
         
            +
            N6bn6NSL4B/Vn8GAVxXhRGGoHj26LupdoI6GS2S3xuExw0xiS3usq6xYthpxHQ/L
         
     | 
| 
      
 13 
     | 
    
         
            +
            pQI2Ijk+IJZPnJR2RZji/7P3nWHWQX+HrCagCu4oyY4o7inWPVJpxD+1LmagRhv5
         
     | 
| 
      
 14 
     | 
    
         
            +
            RyMdQKoY+6x3/r+tWATTNOVqbGzfuKj6TQSkCYvOZOejlRBsMhyYlpldVMCRmaoh
         
     | 
| 
      
 15 
     | 
    
         
            +
            -----END CERTIFICATE REQUEST-----
         
     | 
| 
         Binary file 
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIICxjCCAa6gAwIBAgIJAOF/re9e0JhgMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
         
     | 
| 
      
 3 
     | 
    
         
            +
            BAMTCE15VGVzdENBMB4XDTExMDQxNzIwMDcxN1oXDTEyMDQxNjIwMDcxN1owEzER
         
     | 
| 
      
 4 
     | 
    
         
            +
            MA8GA1UEAxMITXlUZXN0Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
         
     | 
| 
      
 5 
     | 
    
         
            +
            AQDK8ZdVo1llXXrS7ed5Luel1VRq0DmJG1TZ8bAgovK9fx6WsgzeJ17zYwAEheUz
         
     | 
| 
      
 6 
     | 
    
         
            +
            B8PogkNqU3ZIa4T51VCtamoiG6bbKYpco4lutKM7aNGNJNcUfDhwyt/NYOxXM3xf
         
     | 
| 
      
 7 
     | 
    
         
            +
            ahMWjrbH0e4qKJgEjnJLpoeEa+YquDG2NXzocZY5+upy0pX6Reh1EQbju69j9f5Q
         
     | 
| 
      
 8 
     | 
    
         
            +
            Z6u4cvraScyN5IYuq3lKTmc2TxVyINVkpK9DlGJZUBAOBLSbFxGZDRoY0D3b1aeS
         
     | 
| 
      
 9 
     | 
    
         
            +
            /XMfVvcrJi48Ns2ZvT+CAy0KVeKBeQ9+6kD/YAizcxDGLRvqOZXOHYaE2L51DabL
         
     | 
| 
      
 10 
     | 
    
         
            +
            QTxk9NFPgIxrYtGS7RtQ7dUhAgMBAAGjHTAbMAwGA1UdEwQFMAMBAf8wCwYDVR0P
         
     | 
| 
      
 11 
     | 
    
         
            +
            BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAzFtKwsrCBaIAf1/VCJZh4+gzs/UW+
         
     | 
| 
      
 12 
     | 
    
         
            +
            UXeC17GRzazb0O0drm9aMOtwE48NGVTwBjqmnPzFg56FYyll3oVZHz/fgkQZ+6iu
         
     | 
| 
      
 13 
     | 
    
         
            +
            qAbwlmY2H+L9RyC9Mv3B+Ew/o3MNCQQ3rgxbA7hb0k8mwDplxS5GBRROwZl/zHks
         
     | 
| 
      
 14 
     | 
    
         
            +
            gb4yPR6G83+zrgn6JIybdEGUySc1XDx+p6fVXvQG/1fsmExN9/ZuC6ulgBF7e+R5
         
     | 
| 
      
 15 
     | 
    
         
            +
            d7l1AluGL4kS7GMDRZnU9QcXkhnlUyPXIDr/Jd1HFKtwgrXtVl5YIWTaRdWOXGwX
         
     | 
| 
      
 16 
     | 
    
         
            +
            Q8BpM3Vk/NQFoTHO4Na3y8JY6iJzYTIXWHjI6RJdUffsEPtBoysHFHYv
         
     | 
| 
      
 17 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIC5DCCAcygAwIBAgIBATANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
         
     | 
| 
      
 3 
     | 
    
         
            +
            c3RDQTAeFw0xMTA0MTcyMDE3MjdaFw0xMjA0MTYyMDE3MjdaMCcxFDASBgNVBAMT
         
     | 
| 
      
 4 
     | 
    
         
            +
            C2dpb3ZlLmxvY2FsMQ8wDQYDVQQKEwZzZXJ2ZXIwggEiMA0GCSqGSIb3DQEBAQUA
         
     | 
| 
      
 5 
     | 
    
         
            +
            A4IBDwAwggEKAoIBAQDdBEpnl+BRcIzZ4M6pB649cT/YUxebTekUq0HhFXATba44
         
     | 
| 
      
 6 
     | 
    
         
            +
            XkSx81Nn5dMVnKgJgJVRhBxU0ZpBt4/wogKaaYI4/OAEgbUcH03OnEXHNLB586eJ
         
     | 
| 
      
 7 
     | 
    
         
            +
            GdaFHkSQOfnUbBIzpQKlQjGLfjmn6mXkLW5lLP5OrN+npuEI4Wq/jgbIQQp9t7Kw
         
     | 
| 
      
 8 
     | 
    
         
            +
            g+Pb9VdJGw0dmMlVfPP8FVCRpGB9lJc1Ayw8gKHg4mi/uyKKFdLV9IWf+DXlvRQ2
         
     | 
| 
      
 9 
     | 
    
         
            +
            vljmQEhSq4bvxnCtm4p5B7AFHefTnldSgGRUZuyI5/4vFMypB3deV+lku95514uN
         
     | 
| 
      
 10 
     | 
    
         
            +
            F0gg66eDAfoNjEmca09P+GBy8LfJsuiBeFV4irtjAgMBAAGjLzAtMAkGA1UdEwQC
         
     | 
| 
      
 11 
     | 
    
         
            +
            MAAwCwYDVR0PBAQDAgUgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEB
         
     | 
| 
      
 12 
     | 
    
         
            +
            BQUAA4IBAQCCmvsAQ1GaPfoKMqCWxyrQ2BNVPWm9J65thZKxZQF01gLox9cpv6+X
         
     | 
| 
      
 13 
     | 
    
         
            +
            QERcD71HStxbzh2B8Hebbk9OplGuyrdgfvzUxcn88kObj6udipDx4YxTJvtff/9w
         
     | 
| 
      
 14 
     | 
    
         
            +
            xeD5OWDVgef0GkB1Rjj3C3W/sfmTZBYfdKuWuwxMG/NxISkQP4aFHwJnPrzNx9ON
         
     | 
| 
      
 15 
     | 
    
         
            +
            bHoKVNrQ2iKAiMysjnFeA/4QuhBQRf41h9SBWwJEW3Ts91TzbgcjCL46Dq29QB9A
         
     | 
| 
      
 16 
     | 
    
         
            +
            4v8t6K/nibP6n53zHbVzdxIEJ2hFKm+vuqaHRW3048Xgww1xkdxrVbyGp9si92i1
         
     | 
| 
      
 17 
     | 
    
         
            +
            KJ5SDIOR8bQ7OXvdvpiyy6p9fIG0Z6w0
         
     | 
| 
      
 18 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIC5DCCAcygAwIBAgIBAjANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
         
     | 
| 
      
 3 
     | 
    
         
            +
            c3RDQTAeFw0xMTA0MTcyMDE4MzNaFw0xMjA0MTYyMDE4MzNaMCcxFDASBgNVBAMT
         
     | 
| 
      
 4 
     | 
    
         
            +
            C2dpb3ZlLmxvY2FsMQ8wDQYDVQQKEwZjbGllbnQwggEiMA0GCSqGSIb3DQEBAQUA
         
     | 
| 
      
 5 
     | 
    
         
            +
            A4IBDwAwggEKAoIBAQC/4CSqBjpmNXoDt5xU0D4ONG3bQXBV4bJid/nmzIvV67pb
         
     | 
| 
      
 6 
     | 
    
         
            +
            v/VpqKxM+UqoV9d09u/H+f/jAKu0of1e1d+1o09JtjJshX4sYREh2/n0umENH1xC
         
     | 
| 
      
 7 
     | 
    
         
            +
            yvWnP0eFTithj9qmVcK5UOvoZKSKYT4gtCIpYhRUQZkEhPYKhvxePztjRIeUghkK
         
     | 
| 
      
 8 
     | 
    
         
            +
            Qc9Qi0/eARm8d3Zdo0ORnnNNIP+G7BjecmJvTLCP/PBDIGG6r1eybNeulNWddgLg
         
     | 
| 
      
 9 
     | 
    
         
            +
            cUq0ACFepxCJW6RdGVrMXhWomScvKssIUMAdDfwM9ffq64MYE2ZLG1OBBPefNI47
         
     | 
| 
      
 10 
     | 
    
         
            +
            wz8h9ak15T2ZpKFU9biXLr/SnGhdhNR31d16pAtLAgMBAAGjLzAtMAkGA1UdEwQC
         
     | 
| 
      
 11 
     | 
    
         
            +
            MAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEB
         
     | 
| 
      
 12 
     | 
    
         
            +
            BQUAA4IBAQCVBpz3gZRr1s48SVF4+C9YLzrSaWsvzKZNDKH7RJ4f1VR//ZY5zsYi
         
     | 
| 
      
 13 
     | 
    
         
            +
            RqSlzSfLM76Y6Y/Eq0iFshtKmuXHKyA4r/Gp+iiCw4U9Htk91rg98wAPc8wOBgn1
         
     | 
| 
      
 14 
     | 
    
         
            +
            OmomH65JpLwxYvUwyt91opGppcqZHWhruhI0fFTFtPIlGKK3KOmJLPpaSvY0YTJ+
         
     | 
| 
      
 15 
     | 
    
         
            +
            vaI3D6yQEMQoZ/mcXk928ofJJvOpUEmvjTW4Orz+T8NmiffLb64P50h86bdV+8tw
         
     | 
| 
      
 16 
     | 
    
         
            +
            FJx6ix6vLF41LU2iPEYHuuXkA7+M5e+POGscJJCb1p6JKxzI6D/UVDnrbhOlqBa5
         
     | 
| 
      
 17 
     | 
    
         
            +
            U45f0oXQ/ndOYUrBRu3BPFdNAjvpa0ld
         
     | 
| 
      
 18 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unique_subject = yes
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unique_subject = yes
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            V	120416201727Z		01	unknown	/CN=giove.local/O=server
         
     | 
| 
         @@ -0,0 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            [ ca ]                                                     
         
     | 
| 
      
 2 
     | 
    
         
            +
            default_ca = testca                                        
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            [ testca ]                                                 
         
     | 
| 
      
 5 
     | 
    
         
            +
            dir = .                                                    
         
     | 
| 
      
 6 
     | 
    
         
            +
            certificate = $dir/cacert.pem                              
         
     | 
| 
      
 7 
     | 
    
         
            +
            database = $dir/index.txt                                  
         
     | 
| 
      
 8 
     | 
    
         
            +
            new_certs_dir = $dir/certs                                 
         
     | 
| 
      
 9 
     | 
    
         
            +
            private_key = $dir/private/cakey.pem                       
         
     | 
| 
      
 10 
     | 
    
         
            +
            serial = $dir/serial                                       
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            default_crl_days = 7                                       
         
     | 
| 
      
 13 
     | 
    
         
            +
            default_days = 365                                         
         
     | 
| 
      
 14 
     | 
    
         
            +
            default_md = sha1                                          
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            policy = testca_policy                                     
         
     | 
| 
      
 17 
     | 
    
         
            +
            x509_extensions = certificate_extensions                   
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            [ testca_policy ]                                          
         
     | 
| 
      
 20 
     | 
    
         
            +
            commonName = supplied                                      
         
     | 
| 
      
 21 
     | 
    
         
            +
            stateOrProvinceName = optional                             
         
     | 
| 
      
 22 
     | 
    
         
            +
            countryName = optional                                     
         
     | 
| 
      
 23 
     | 
    
         
            +
            emailAddress = optional                                    
         
     | 
| 
      
 24 
     | 
    
         
            +
            organizationName = optional                                
         
     | 
| 
      
 25 
     | 
    
         
            +
            organizationalUnitName = optional                          
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            [ certificate_extensions ]                                 
         
     | 
| 
      
 28 
     | 
    
         
            +
            basicConstraints = CA:false                                
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            [ req ]                                                    
         
     | 
| 
      
 31 
     | 
    
         
            +
            default_bits = 2048                                        
         
     | 
| 
      
 32 
     | 
    
         
            +
            default_keyfile = ./private/cakey.pem                      
         
     | 
| 
      
 33 
     | 
    
         
            +
            default_md = sha1                                          
         
     | 
| 
      
 34 
     | 
    
         
            +
            prompt = yes                                               
         
     | 
| 
      
 35 
     | 
    
         
            +
            distinguished_name = root_ca_distinguished_name            
         
     | 
| 
      
 36 
     | 
    
         
            +
            x509_extensions = root_ca_extensions                       
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            [ root_ca_distinguished_name ]                             
         
     | 
| 
      
 39 
     | 
    
         
            +
            commonName = hostname                                      
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            [ root_ca_extensions ]                                     
         
     | 
| 
      
 42 
     | 
    
         
            +
            basicConstraints = CA:true                                 
         
     | 
| 
      
 43 
     | 
    
         
            +
            keyUsage = keyCertSign, cRLSign                            
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            [ client_ca_extensions ]                                   
         
     | 
| 
      
 46 
     | 
    
         
            +
            basicConstraints = CA:false                                
         
     | 
| 
      
 47 
     | 
    
         
            +
            keyUsage = digitalSignature                                
         
     | 
| 
      
 48 
     | 
    
         
            +
            extendedKeyUsage = 1.3.6.1.5.5.7.3.2                       
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            [ server_ca_extensions ]                                   
         
     | 
| 
      
 51 
     | 
    
         
            +
            basicConstraints = CA:false                                
         
     | 
| 
      
 52 
     | 
    
         
            +
            keyUsage = keyEncipherment                                 
         
     | 
| 
      
 53 
     | 
    
         
            +
            extendedKeyUsage = 1.3.6.1.5.5.7.3.1
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEowIBAAKCAQEAyvGXVaNZZV160u3neS7npdVUatA5iRtU2fGwIKLyvX8elrIM
         
     | 
| 
      
 3 
     | 
    
         
            +
            3ide82MABIXlMwfD6IJDalN2SGuE+dVQrWpqIhum2ymKXKOJbrSjO2jRjSTXFHw4
         
     | 
| 
      
 4 
     | 
    
         
            +
            cMrfzWDsVzN8X2oTFo62x9HuKiiYBI5yS6aHhGvmKrgxtjV86HGWOfrqctKV+kXo
         
     | 
| 
      
 5 
     | 
    
         
            +
            dREG47uvY/X+UGeruHL62knMjeSGLqt5Sk5nNk8VciDVZKSvQ5RiWVAQDgS0mxcR
         
     | 
| 
      
 6 
     | 
    
         
            +
            mQ0aGNA929Wnkv1zH1b3KyYuPDbNmb0/ggMtClXigXkPfupA/2AIs3MQxi0b6jmV
         
     | 
| 
      
 7 
     | 
    
         
            +
            zh2GhNi+dQ2my0E8ZPTRT4CMa2LRku0bUO3VIQIDAQABAoIBAQDJoXiDHFVgUZ0L
         
     | 
| 
      
 8 
     | 
    
         
            +
            XlUBYKnEaIyDxzey0hXep7Me6eaUgW0JugLw4VsEI9NLqyBKMCfjpTCHvj6huzmV
         
     | 
| 
      
 9 
     | 
    
         
            +
            4utSMI0cMC76Rm5ylgSgmhYnm3+/ZN/QOY71+YqcCfUmuj+SqNgoLEjLhPbEqipH
         
     | 
| 
      
 10 
     | 
    
         
            +
            NKO4J88ysOUwgmrZppDgfKIOHw66Xlx0WtyFksozLve5pqxzs2gNZDmT5YdlGt+w
         
     | 
| 
      
 11 
     | 
    
         
            +
            X2zaUr7GholPGUVzhZSlpBpPkloSNYyGPX7O25bc63Ev92m3vnroJZYFiaUaKcFE
         
     | 
| 
      
 12 
     | 
    
         
            +
            M2RVVd3m8J47uoSwxl2ppnIgwodTWe20swc3d4cXK30U4USLsvWesthnfUc65QWa
         
     | 
| 
      
 13 
     | 
    
         
            +
            KfeanOrBAoGBAOvxGM9ufV1EFyV3D4kDB2UGp2ccv2t+rJ+urpl7JLCw1Aetpc3v
         
     | 
| 
      
 14 
     | 
    
         
            +
            Qg/QsbBfOhfI650zOZgzE5bG6B6wNYVLAC/UusrYgeLkyqKVbQgDTP+djD61jYjy
         
     | 
| 
      
 15 
     | 
    
         
            +
            IG5RP7EumN07Gvja59B4Kw5zN6TB3MKGz9Qv3a2MOvyg/3TRnssHOkQ5AoGBANwy
         
     | 
| 
      
 16 
     | 
    
         
            +
            V822s149G46tIbESw5ICcY8HorP1kD2syMeBQWKJcEgiSXL8Q3TIKdqaim8Q1Bqu
         
     | 
| 
      
 17 
     | 
    
         
            +
            fSYwISUVsFDaTyvRl25hLfkQ0t+qsul7EcjNFHf9L7dJx7z/dj8lVTQWGYse5iVQ
         
     | 
| 
      
 18 
     | 
    
         
            +
            aplx7fYQHgXdC7NjtpIrxUZkJ7bAl+0cpavdcCgpAoGAetCbO46mDyBcdBIPsiAz
         
     | 
| 
      
 19 
     | 
    
         
            +
            fzEBfrkGIyxjKxPAqv/gz2CcXgrT3eiHGLhnZgmLscnSa5e4iTM9JSUQuri6g1HR
         
     | 
| 
      
 20 
     | 
    
         
            +
            HRS8zs34fmTd3deuU5d0QzJ9SD81F24B16rPXqmExNP5bER2mpuSvgjXlBmdklye
         
     | 
| 
      
 21 
     | 
    
         
            +
            XjM0TxxJsCsWDnb3E3QFrnECgYBSpXqbNZXBK0JqnMTmh1psNQqWWpFQ5jxLScza
         
     | 
| 
      
 22 
     | 
    
         
            +
            RMNbzqYcDPJwfAp9jJtY92Q6J6DUmuVSLgJivu88iZPpqHMj9MmikBP160XXqF+W
         
     | 
| 
      
 23 
     | 
    
         
            +
            dJLYLml4a/LSFzg0nziJojnYI7LSEorQKRjdoFMEdGDt5eEin9cdgn39c/ASCQyN
         
     | 
| 
      
 24 
     | 
    
         
            +
            o0FzcQKBgHifRoEEyyHzepXiv2osPsOV9cEoWROLRaooE7boPISimJ1PCFGON0XT
         
     | 
| 
      
 25 
     | 
    
         
            +
            20PmWJL3j3/f2Eqk47x4WpzLOp/OwUqqpaDpImtQX7GD7C+/PbAdbT1Q1Kc9kxc9
         
     | 
| 
      
 26 
     | 
    
         
            +
            a5FJg85oJqDPB1yEmYG5nWIlqB3LOX/IdOfYSOUFvRiomwJJoxys
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            03
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            02
         
     | 
    
        data/lib/amqp/channel.rb
    CHANGED
    
    | 
         @@ -118,12 +118,17 @@ module AMQP 
     | 
|
| 
       118 
118 
     | 
    
         
             
                  # only send channel.open when connection is actually open. Makes it possible to
         
     | 
| 
       119 
119 
     | 
    
         
             
                  # do c = AMQP.connect; AMQP::Channel.new(c) that is what some people do. MK.
         
     | 
| 
       120 
120 
     | 
    
         
             
                  @connection.on_open do
         
     | 
| 
       121 
     | 
    
         
            -
                    self.open do  
     | 
| 
      
 121 
     | 
    
         
            +
                    self.open do |ch, open_ok|
         
     | 
| 
       122 
122 
     | 
    
         
             
                      @channel_is_open_deferrable.succeed
         
     | 
| 
       123 
123 
     | 
    
         | 
| 
       124 
     | 
    
         
            -
                       
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
      
 124 
     | 
    
         
            +
                      if block
         
     | 
| 
      
 125 
     | 
    
         
            +
                        case block.arity
         
     | 
| 
      
 126 
     | 
    
         
            +
                        when 1 then block.call(ch)
         
     | 
| 
      
 127 
     | 
    
         
            +
                        else block.call(ch, open_ok)
         
     | 
| 
      
 128 
     | 
    
         
            +
                        end # case
         
     | 
| 
      
 129 
     | 
    
         
            +
                      end # if
         
     | 
| 
      
 130 
     | 
    
         
            +
                    end # self.open
         
     | 
| 
      
 131 
     | 
    
         
            +
                  end # @connection.on_open
         
     | 
| 
       127 
132 
     | 
    
         
             
                end
         
     | 
| 
       128 
133 
     | 
    
         | 
| 
       129 
134 
     | 
    
         | 
    
        data/lib/amqp/exchange.rb
    CHANGED
    
    | 
         @@ -294,6 +294,9 @@ module AMQP 
     | 
|
| 
       294 
294 
     | 
    
         
             
                # @option opts [String] :default_routing_key (nil)  Default routing key that will be used by {Exchange#publish} when no routing key is not passed explicitly.
         
     | 
| 
       295 
295 
     | 
    
         
             
                #                                                   It is perfectly fine for applications to always specify routing key to {Exchange#publish}.
         
     | 
| 
       296 
296 
     | 
    
         
             
                #
         
     | 
| 
      
 297 
     | 
    
         
            +
                # @option opts [Hash] :arguments (nil)  A hash of optional arguments with the declaration. Some brokers implement
         
     | 
| 
      
 298 
     | 
    
         
            +
                #                                          AMQP extensions using x-prefixed declaration arguments.
         
     | 
| 
      
 299 
     | 
    
         
            +
                #
         
     | 
| 
       297 
300 
     | 
    
         
             
                #
         
     | 
| 
       298 
301 
     | 
    
         
             
                # @raise [AMQP::Error] Raised when exchange is redeclared with parameters different from original declaration.
         
     | 
| 
       299 
302 
     | 
    
         
             
                # @raise [AMQP::Error] Raised when exchange is declared with :passive => true and the exchange does not exist.
         
     | 
| 
         @@ -357,7 +360,7 @@ module AMQP 
     | 
|
| 
       357 
360 
     | 
    
         | 
| 
       358 
361 
     | 
    
         
             
                    unless @opts[:no_declare]
         
     | 
| 
       359 
362 
     | 
    
         
             
                      @channel.once_open do
         
     | 
| 
       360 
     | 
    
         
            -
                        self.declare(passive = @opts[:passive], durable = @opts[:durable], exclusive = @opts[:exclusive], auto_delete = @opts[:auto_delete], nowait = @opts[:nowait],  
     | 
| 
      
 363 
     | 
    
         
            +
                        self.declare(passive = @opts[:passive], durable = @opts[:durable], exclusive = @opts[:exclusive], auto_delete = @opts[:auto_delete], nowait = @opts[:nowait], @opts[:arguments], &shim)
         
     | 
| 
       361 
364 
     | 
    
         
             
                      end
         
     | 
| 
       362 
365 
     | 
    
         
             
                    end
         
     | 
| 
       363 
366 
     | 
    
         
             
                  else
         
     | 
    
        data/lib/amqp/queue.rb
    CHANGED
    
    | 
         @@ -148,6 +148,12 @@ module AMQP 
     | 
|
| 
       148 
148 
     | 
    
         
             
                #                                        method it will raise a channel or connection exception.
         
     | 
| 
       149 
149 
     | 
    
         
             
                #
         
     | 
| 
       150 
150 
     | 
    
         
             
                #
         
     | 
| 
      
 151 
     | 
    
         
            +
                # @option opts [Hash] :arguments (nil)  A hash of optional arguments with the declaration. Some brokers implement
         
     | 
| 
      
 152 
     | 
    
         
            +
                #                                          AMQP extensions using x-prefixed declaration arguments. For example, RabbitMQ
         
     | 
| 
      
 153 
     | 
    
         
            +
                #                                          recognizes x-message-ttl declaration arguments that defines TTL of messages in
         
     | 
| 
      
 154 
     | 
    
         
            +
                #                                          the queue.
         
     | 
| 
      
 155 
     | 
    
         
            +
                #
         
     | 
| 
      
 156 
     | 
    
         
            +
                #
         
     | 
| 
       151 
157 
     | 
    
         
             
                # @yield [queue, declare_ok] Yields successfully declared queue instance and AMQP method (queue.declare-ok) instance. The latter is optional.
         
     | 
| 
       152 
158 
     | 
    
         
             
                # @yieldparam [Queue] queue Queue that is successfully declared and is ready to be used.
         
     | 
| 
       153 
159 
     | 
    
         
             
                # @yieldparam [AMQP::Protocol::Queue::DeclareOk] declare_ok AMQP queue.declare-ok) instance.
         
     | 
| 
         @@ -179,9 +185,9 @@ module AMQP 
     | 
|
| 
       179 
185 
     | 
    
         | 
| 
       180 
186 
     | 
    
         
             
                  @channel.once_open do
         
     | 
| 
       181 
187 
     | 
    
         
             
                    if block
         
     | 
| 
       182 
     | 
    
         
            -
                      self.declare(@opts[:passive], @opts[:durable], @opts[:exclusive], @opts[:auto_delete], @opts[:nowait],  
     | 
| 
      
 188 
     | 
    
         
            +
                      self.declare(@opts[:passive], @opts[:durable], @opts[:exclusive], @opts[:auto_delete], @opts[:nowait], @opts[:arguments], &shim)
         
     | 
| 
       183 
189 
     | 
    
         
             
                    else
         
     | 
| 
       184 
     | 
    
         
            -
                      self.declare(@opts[:passive], @opts[:durable], @opts[:exclusive], @opts[:auto_delete], @opts[:nowait],  
     | 
| 
      
 190 
     | 
    
         
            +
                      self.declare(@opts[:passive], @opts[:durable], @opts[:exclusive], @opts[:auto_delete], @opts[:nowait], @opts[:arguments])
         
     | 
| 
       185 
191 
     | 
    
         
             
                    end
         
     | 
| 
       186 
192 
     | 
    
         
             
                  end
         
     | 
| 
       187 
193 
     | 
    
         
             
                end
         
     | 
    
        data/lib/amqp/version.rb
    CHANGED
    
    
| 
         @@ -15,9 +15,12 @@ describe "Queue that was bound to default direct exchange thanks to Automatic Mo 
     | 
|
| 
       15 
15 
     | 
    
         
             
              amqp_before do
         
     | 
| 
       16 
16 
     | 
    
         
             
                @channel   = AMQP::Channel.new
         
     | 
| 
       17 
17 
     | 
    
         
             
                @channel.should be_open
         
     | 
| 
      
 18 
     | 
    
         
            +
                @channel.on_error do |*args|
         
     | 
| 
      
 19 
     | 
    
         
            +
                  puts "Channel-level error!"
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
       18 
21 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                @queue1    = @channel.queue("queue1")
         
     | 
| 
       20 
     | 
    
         
            -
                @queue2    = @channel.queue("queue2")
         
     | 
| 
      
 22 
     | 
    
         
            +
                @queue1    = @channel.queue("queue1", :auto_delete => true)
         
     | 
| 
      
 23 
     | 
    
         
            +
                @queue2    = @channel.queue("queue2", :auto_delete => true)
         
     | 
| 
       21 
24 
     | 
    
         | 
| 
       22 
25 
     | 
    
         
             
                # Rely on default direct exchange binding, see section 2.1.2.4 Automatic Mode in AMQP 0.9.1 spec.
         
     | 
| 
       23 
26 
     | 
    
         
             
                @exchange = AMQP::Exchange.default(@channel)
         
     | 
| 
         @@ -55,7 +58,12 @@ describe "Queue that was bound to default direct exchange thanks to Automatic Mo 
     | 
|
| 
       55 
58 
     | 
    
         
             
                  @exchange.publish("some white noise", :routing_key => "killa key")
         
     | 
| 
       56 
59 
     | 
    
         
             
                end
         
     | 
| 
       57 
60 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
                 
     | 
| 
      
 61 
     | 
    
         
            +
                delayed(0.3) {
         
     | 
| 
      
 62 
     | 
    
         
            +
                  # We never subscribe to it, hence, need to delete manually
         
     | 
| 
      
 63 
     | 
    
         
            +
                  @queue2.delete
         
     | 
| 
      
 64 
     | 
    
         
            +
                }
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                done(0.5) {
         
     | 
| 
       59 
67 
     | 
    
         
             
                  number_of_received_messages.should == expected_number_of_messages
         
     | 
| 
       60 
68 
     | 
    
         
             
                }
         
     | 
| 
       61 
69 
     | 
    
         
             
              end # it
         
     | 
| 
         @@ -47,7 +47,7 @@ describe AMQP::Queue, "#pop" do 
     | 
|
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
                    @queue.pop do |payload|
         
     | 
| 
       49 
49 
     | 
    
         
             
                      callback_has_fired = true
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
                      @queue.delete
         
     | 
| 
       51 
51 
     | 
    
         
             
                      payload.should be_nil
         
     | 
| 
       52 
52 
     | 
    
         
             
                    end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
         @@ -58,7 +58,7 @@ describe AMQP::Queue, "#pop" do 
     | 
|
| 
       58 
58 
     | 
    
         
             
                end
         
     | 
| 
       59 
59 
     | 
    
         
             
              end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
              context "when THERE ARE messages in the queue" do 
     | 
| 
      
 61 
     | 
    
         
            +
              context "when THERE ARE messages in the queue" do
         
     | 
| 
       62 
62 
     | 
    
         
             
                it "yields message payload to the callback" do
         
     | 
| 
       63 
63 
     | 
    
         
             
                  number_of_received_messages = 0
         
     | 
| 
       64 
64 
     | 
    
         
             
                  expected_number_of_messages = 300
         
     | 
| 
         @@ -71,7 +71,7 @@ describe AMQP::Queue, "#pop" do 
     | 
|
| 
       71 
71 
     | 
    
         
             
                    expected_number_of_messages.times do
         
     | 
| 
       72 
72 
     | 
    
         
             
                      @queue.pop do |headers, payload|
         
     | 
| 
       73 
73 
     | 
    
         
             
                        payload.should_not be_nil
         
     | 
| 
       74 
     | 
    
         
            -
                        number_of_received_messages += 1 
     | 
| 
      
 74 
     | 
    
         
            +
                        number_of_received_messages += 1
         
     | 
| 
       75 
75 
     | 
    
         
             
                        headers.message_count.should == (expected_number_of_messages - number_of_received_messages)
         
     | 
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         
             
                        if RUBY_VERSION =~ /^1.9/
         
     | 
| 
         @@ -83,6 +83,10 @@ describe AMQP::Queue, "#pop" do 
     | 
|
| 
       83 
83 
     | 
    
         
             
                    end # do
         
     | 
| 
       84 
84 
     | 
    
         
             
                  end
         
     | 
| 
       85 
85 
     | 
    
         | 
| 
      
 86 
     | 
    
         
            +
                  delayed(1.3) {
         
     | 
| 
      
 87 
     | 
    
         
            +
                    # Queue.Get doesn't qualify for subscription, hence, manual deletion is required
         
     | 
| 
      
 88 
     | 
    
         
            +
                    @queue.delete
         
     | 
| 
      
 89 
     | 
    
         
            +
                  }
         
     | 
| 
       86 
90 
     | 
    
         
             
                  done(1.5) {
         
     | 
| 
       87 
91 
     | 
    
         
             
                    number_of_received_messages.should == expected_number_of_messages
         
     | 
| 
       88 
92 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -28,14 +28,12 @@ describe AMQP do 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  it "declares a new queue with that name" do
         
     | 
| 
       29 
29 
     | 
    
         
             
                    queue = @channel.queue(name)
         
     | 
| 
       30 
30 
     | 
    
         
             
                    queue.name.should == name
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
31 
     | 
    
         
             
                    done
         
     | 
| 
       33 
32 
     | 
    
         
             
                  end
         
     | 
| 
       34 
33 
     | 
    
         | 
| 
       35 
34 
     | 
    
         
             
                  it "caches that queue" do
         
     | 
| 
       36 
35 
     | 
    
         
             
                    queue = @channel.queue(name)
         
     | 
| 
       37 
36 
     | 
    
         
             
                    @channel.queue(name).object_id.should == queue.object_id
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
37 
     | 
    
         
             
                    done
         
     | 
| 
       40 
38 
     | 
    
         
             
                  end
         
     | 
| 
       41 
39 
     | 
    
         
             
                end # context
         
     | 
| 
         @@ -44,29 +42,68 @@ describe AMQP do 
     | 
|
| 
       44 
42 
     | 
    
         
             
                  it "uses server-assigned queue name" do
         
     | 
| 
       45 
43 
     | 
    
         
             
                    @channel.queue("") do |queue, *args|
         
     | 
| 
       46 
44 
     | 
    
         
             
                      queue.name.should_not be_empty
         
     | 
| 
       47 
     | 
    
         
            -
                       
     | 
| 
      
 45 
     | 
    
         
            +
                      queue.delete
         
     | 
| 
      
 46 
     | 
    
         
            +
                      done(0.3)
         
     | 
| 
       48 
47 
     | 
    
         
             
                    end
         
     | 
| 
       49 
48 
     | 
    
         
             
                  end
         
     | 
| 
       50 
49 
     | 
    
         
             
                end # context
         
     | 
| 
       51 
50 
     | 
    
         | 
| 
       52 
51 
     | 
    
         | 
| 
      
 52 
     | 
    
         
            +
                context "when queue is redeclared with different attributes" do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  let(:name) { "amqp-gem.nondurable.queue" }
         
     | 
| 
      
 54 
     | 
    
         
            +
                  let(:options) { {:durable => false, :passive => false} }
         
     | 
| 
      
 55 
     | 
    
         
            +
                  let(:different_options) { {:durable => true, :passive => false} }
         
     | 
| 
      
 56 
     | 
    
         
            +
                  amqp_before do
         
     | 
| 
      
 57 
     | 
    
         
            +
                    @queue       = @channel.queue(name, options)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    delayed(0.25) { @queue.delete }
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  context "on the same channel" do
         
     | 
| 
      
 62 
     | 
    
         
            +
                    it "should raise ruby exception" do
         
     | 
| 
      
 63 
     | 
    
         
            +
                      expect {
         
     | 
| 
      
 64 
     | 
    
         
            +
                        @other_queue = @channel.queue(name, different_options)
         
     | 
| 
      
 65 
     | 
    
         
            +
                      }.to raise_error(AMQP::IncompatibleOptionsError)
         
     | 
| 
      
 66 
     | 
    
         
            +
                      @queue.delete
         
     | 
| 
      
 67 
     | 
    
         
            +
                      done(0.2)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end
         
     | 
| 
      
 69 
     | 
    
         
            +
                  end
         
     | 
| 
       53 
70 
     | 
    
         | 
| 
      
 71 
     | 
    
         
            +
                  context "on different channels (or even in different processes)" do
         
     | 
| 
      
 72 
     | 
    
         
            +
                    amqp_before { @other_channel = AMQP::Channel.new }
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                    it "should not raise ruby exception" do
         
     | 
| 
      
 75 
     | 
    
         
            +
                      expect {
         
     | 
| 
      
 76 
     | 
    
         
            +
                        @other_queue = @other_channel.queue(name, different_options)
         
     | 
| 
      
 77 
     | 
    
         
            +
                      }.to_not raise_error
         
     | 
| 
      
 78 
     | 
    
         
            +
                      done
         
     | 
| 
      
 79 
     | 
    
         
            +
                    end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                    it "should trigger channel-level #on_error callback" do
         
     | 
| 
      
 82 
     | 
    
         
            +
                      @other_channel.on_error {|*args| @callback_fired = true }
         
     | 
| 
      
 83 
     | 
    
         
            +
                      @other_queue = @other_channel.queue(name, different_options)
         
     | 
| 
      
 84 
     | 
    
         
            +
                      done(0.35) {
         
     | 
| 
      
 85 
     | 
    
         
            +
                        @callback_fired.should be_true
         
     | 
| 
      
 86 
     | 
    
         
            +
                        @other_channel.should be_closed
         
     | 
| 
      
 87 
     | 
    
         
            +
                      }
         
     | 
| 
      
 88 
     | 
    
         
            +
                    end
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
       54 
91 
     | 
    
         | 
| 
       55 
92 
     | 
    
         
             
                context "when passive option is used" do
         
     | 
| 
       56 
     | 
    
         
            -
                  context "and  
     | 
| 
      
 93 
     | 
    
         
            +
                  context "and queue with given name already exists" do
         
     | 
| 
       57 
94 
     | 
    
         
             
                    it "silently returns" do
         
     | 
| 
       58 
95 
     | 
    
         
             
                      name = "a_new_queue declared at #{Time.now.to_i}"
         
     | 
| 
       59 
96 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
                       
     | 
| 
       61 
     | 
    
         
            -
                       
     | 
| 
      
 97 
     | 
    
         
            +
                      original_queue = @channel.queue(name)
         
     | 
| 
      
 98 
     | 
    
         
            +
                      queue          = @channel.queue(name, :passive => true)
         
     | 
| 
       62 
99 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                       
     | 
| 
      
 100 
     | 
    
         
            +
                      queue.should == original_queue
         
     | 
| 
       64 
101 
     | 
    
         | 
| 
       65 
102 
     | 
    
         
             
                      done
         
     | 
| 
       66 
103 
     | 
    
         
             
                    end # it
         
     | 
| 
       67 
104 
     | 
    
         
             
                  end
         
     | 
| 
       68 
105 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                  context "and  
     | 
| 
      
 106 
     | 
    
         
            +
                  context "and queue with given name DOES NOT exist" do
         
     | 
| 
       70 
107 
     | 
    
         
             
                    it "raises an exception" do
         
     | 
| 
       71 
108 
     | 
    
         
             
                      pending "Not yet supported"
         
     | 
| 
       72 
109 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: amqp
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.8.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.8.0.rc2
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 6
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -11,12 +11,12 @@ authors: 
     | 
|
| 
       11 
11 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       13 
13 
     | 
    
         
             
            cert_chain: 
         
     | 
| 
       14 
     | 
    
         
            -
            date: 2011-04- 
     | 
| 
      
 14 
     | 
    
         
            +
            date: 2011-04-18 00:00:00.000000000
         
     | 
| 
       15 
15 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       16 
16 
     | 
    
         
             
            dependencies:
         
     | 
| 
       17 
17 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       18 
18 
     | 
    
         
             
              name: eventmachine
         
     | 
| 
       19 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 19 
     | 
    
         
            +
              requirement: &2168550180 !ruby/object:Gem::Requirement
         
     | 
| 
       20 
20 
     | 
    
         
             
                none: false
         
     | 
| 
       21 
21 
     | 
    
         
             
                requirements:
         
     | 
| 
       22 
22 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -24,18 +24,18 @@ dependencies: 
     | 
|
| 
       24 
24 
     | 
    
         
             
                    version: 0.12.10
         
     | 
| 
       25 
25 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       26 
26 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       27 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 27 
     | 
    
         
            +
              version_requirements: *2168550180
         
     | 
| 
       28 
28 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       29 
29 
     | 
    
         
             
              name: amq-client
         
     | 
| 
       30 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 30 
     | 
    
         
            +
              requirement: &2168549540 !ruby/object:Gem::Requirement
         
     | 
| 
       31 
31 
     | 
    
         
             
                none: false
         
     | 
| 
       32 
32 
     | 
    
         
             
                requirements:
         
     | 
| 
       33 
33 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
       34 
34 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       35 
     | 
    
         
            -
                    version:  
     | 
| 
      
 35 
     | 
    
         
            +
                    version: 0.7.0.alpha2
         
     | 
| 
       36 
36 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       37 
37 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       38 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 38 
     | 
    
         
            +
              version_requirements: *2168549540
         
     | 
| 
       39 
39 
     | 
    
         
             
            description: Asynchronous AMQP 0.9.1 client for Ruby. Built on top of Eventmachine.
         
     | 
| 
       40 
40 
     | 
    
         
             
            email:
         
     | 
| 
       41 
41 
     | 
    
         
             
            - michael@novemberain.com
         
     | 
| 
         @@ -44,24 +44,6 @@ executables: [] 
     | 
|
| 
       44 
44 
     | 
    
         
             
            extensions: []
         
     | 
| 
       45 
45 
     | 
    
         
             
            extra_rdoc_files:
         
     | 
| 
       46 
46 
     | 
    
         
             
            - README.textile
         
     | 
| 
       47 
     | 
    
         
            -
            - doc/_index.html
         
     | 
| 
       48 
     | 
    
         
            -
            - doc/AMQP.html
         
     | 
| 
       49 
     | 
    
         
            -
            - doc/class_list.html
         
     | 
| 
       50 
     | 
    
         
            -
            - doc/EXAMPLE_01_PINGPONG
         
     | 
| 
       51 
     | 
    
         
            -
            - doc/EXAMPLE_02_CLOCK
         
     | 
| 
       52 
     | 
    
         
            -
            - doc/EXAMPLE_03_STOCKS
         
     | 
| 
       53 
     | 
    
         
            -
            - doc/EXAMPLE_04_MULTICLOCK
         
     | 
| 
       54 
     | 
    
         
            -
            - doc/EXAMPLE_05_ACK
         
     | 
| 
       55 
     | 
    
         
            -
            - doc/EXAMPLE_05_POP
         
     | 
| 
       56 
     | 
    
         
            -
            - doc/EXAMPLE_06_HASHTABLE
         
     | 
| 
       57 
     | 
    
         
            -
            - doc/file.README.html
         
     | 
| 
       58 
     | 
    
         
            -
            - doc/file.VendorSpecificExtensions.html
         
     | 
| 
       59 
     | 
    
         
            -
            - doc/file_list.html
         
     | 
| 
       60 
     | 
    
         
            -
            - doc/frames.html
         
     | 
| 
       61 
     | 
    
         
            -
            - doc/index.html
         
     | 
| 
       62 
     | 
    
         
            -
            - doc/method_list.html
         
     | 
| 
       63 
     | 
    
         
            -
            - doc/MQ.html
         
     | 
| 
       64 
     | 
    
         
            -
            - doc/top-level-namespace.html
         
     | 
| 
       65 
47 
     | 
    
         
             
            files:
         
     | 
| 
       66 
48 
     | 
    
         
             
            - .gitignore
         
     | 
| 
       67 
49 
     | 
    
         
             
            - .rspec
         
     | 
| 
         @@ -77,19 +59,34 @@ files: 
     | 
|
| 
       77 
59 
     | 
    
         
             
            - bin/irb
         
     | 
| 
       78 
60 
     | 
    
         
             
            - bin/jenkins.sh
         
     | 
| 
       79 
61 
     | 
    
         
             
            - bin/set_test_suite_realms_up.sh
         
     | 
| 
       80 
     | 
    
         
            -
            -  
     | 
| 
       81 
     | 
    
         
            -
            - doc/EXAMPLE_02_CLOCK
         
     | 
| 
       82 
     | 
    
         
            -
            - doc/EXAMPLE_03_STOCKS
         
     | 
| 
       83 
     | 
    
         
            -
            - doc/EXAMPLE_04_MULTICLOCK
         
     | 
| 
       84 
     | 
    
         
            -
            - doc/EXAMPLE_05_ACK
         
     | 
| 
       85 
     | 
    
         
            -
            - doc/EXAMPLE_05_POP
         
     | 
| 
       86 
     | 
    
         
            -
            - doc/EXAMPLE_06_HASHTABLE
         
     | 
| 
      
 62 
     | 
    
         
            +
            - docs/RabbitMQVersions.textile
         
     | 
| 
       87 
63 
     | 
    
         
             
            - docs/VendorSpecificExtensions.textile
         
     | 
| 
      
 64 
     | 
    
         
            +
            - examples/extensions/rabbitmq/per_queue_message_ttl.rb
         
     | 
| 
       88 
65 
     | 
    
         
             
            - examples/extensions/rabbitmq/publisher_confirmations_with_transient_messages.rb
         
     | 
| 
       89 
66 
     | 
    
         
             
            - examples/hello_world.rb
         
     | 
| 
       90 
67 
     | 
    
         
             
            - examples/real-world/task-queue/README.textile
         
     | 
| 
       91 
68 
     | 
    
         
             
            - examples/real-world/task-queue/consumer.rb
         
     | 
| 
       92 
69 
     | 
    
         
             
            - examples/real-world/task-queue/producer.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
            - examples/tls_certificates/client/cert.pem
         
     | 
| 
      
 71 
     | 
    
         
            +
            - examples/tls_certificates/client/key.pem
         
     | 
| 
      
 72 
     | 
    
         
            +
            - examples/tls_certificates/client/keycert.p12
         
     | 
| 
      
 73 
     | 
    
         
            +
            - examples/tls_certificates/client/req.pem
         
     | 
| 
      
 74 
     | 
    
         
            +
            - examples/tls_certificates/server/cert.pem
         
     | 
| 
      
 75 
     | 
    
         
            +
            - examples/tls_certificates/server/key.pem
         
     | 
| 
      
 76 
     | 
    
         
            +
            - examples/tls_certificates/server/keycert.p12
         
     | 
| 
      
 77 
     | 
    
         
            +
            - examples/tls_certificates/server/req.pem
         
     | 
| 
      
 78 
     | 
    
         
            +
            - examples/tls_certificates/testca/cacert.cer
         
     | 
| 
      
 79 
     | 
    
         
            +
            - examples/tls_certificates/testca/cacert.pem
         
     | 
| 
      
 80 
     | 
    
         
            +
            - examples/tls_certificates/testca/certs/01.pem
         
     | 
| 
      
 81 
     | 
    
         
            +
            - examples/tls_certificates/testca/certs/02.pem
         
     | 
| 
      
 82 
     | 
    
         
            +
            - examples/tls_certificates/testca/index.txt
         
     | 
| 
      
 83 
     | 
    
         
            +
            - examples/tls_certificates/testca/index.txt.attr
         
     | 
| 
      
 84 
     | 
    
         
            +
            - examples/tls_certificates/testca/index.txt.attr.old
         
     | 
| 
      
 85 
     | 
    
         
            +
            - examples/tls_certificates/testca/index.txt.old
         
     | 
| 
      
 86 
     | 
    
         
            +
            - examples/tls_certificates/testca/openssl.cnf
         
     | 
| 
      
 87 
     | 
    
         
            +
            - examples/tls_certificates/testca/private/cakey.pem
         
     | 
| 
      
 88 
     | 
    
         
            +
            - examples/tls_certificates/testca/serial
         
     | 
| 
      
 89 
     | 
    
         
            +
            - examples/tls_certificates/testca/serial.old
         
     | 
| 
       93 
90 
     | 
    
         
             
            - examples/various/ack.rb
         
     | 
| 
       94 
91 
     | 
    
         
             
            - examples/various/automatic_binding_for_default_direct_exchange.rb
         
     | 
| 
       95 
92 
     | 
    
         
             
            - examples/various/basic_get.rb
         
     | 
| 
         @@ -146,42 +143,40 @@ files: 
     | 
|
| 
       146 
143 
     | 
    
         
             
            - spec/unit/amqp/basic_spec.rb
         
     | 
| 
       147 
144 
     | 
    
         
             
            - spec/unit/amqp/connection_spec.rb
         
     | 
| 
       148 
145 
     | 
    
         
             
            - tasks.rb
         
     | 
| 
       149 
     | 
    
         
            -
            - doc/_index.html
         
     | 
| 
       150 
     | 
    
         
            -
            - doc/AMQP.html
         
     | 
| 
       151 
     | 
    
         
            -
            - doc/class_list.html
         
     | 
| 
       152 
     | 
    
         
            -
            - doc/file.README.html
         
     | 
| 
       153 
     | 
    
         
            -
            - doc/file.VendorSpecificExtensions.html
         
     | 
| 
       154 
     | 
    
         
            -
            - doc/file_list.html
         
     | 
| 
       155 
     | 
    
         
            -
            - doc/frames.html
         
     | 
| 
       156 
     | 
    
         
            -
            - doc/index.html
         
     | 
| 
       157 
     | 
    
         
            -
            - doc/method_list.html
         
     | 
| 
       158 
     | 
    
         
            -
            - doc/MQ.html
         
     | 
| 
       159 
     | 
    
         
            -
            - doc/top-level-namespace.html
         
     | 
| 
       160 
146 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       161 
147 
     | 
    
         
             
            homepage: http://github.com/ruby-amqp/amqp
         
     | 
| 
       162 
148 
     | 
    
         
             
            licenses: []
         
     | 
| 
       163 
     | 
    
         
            -
            post_install_message: ! "[\e[32mVersion 0.8.0\e[0m] [API] AMQP:: 
     | 
| 
       164 
     | 
    
         
            -
               
     | 
| 
      
 149 
     | 
    
         
            +
            post_install_message: ! "[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Exchange#initialize
         
     | 
| 
      
 150 
     | 
    
         
            +
              now accepts :arguments option that takes a hash. Brokers\n[\e[32mVersion 0.8.0\e[0m]
         
     | 
| 
      
 151 
     | 
    
         
            +
              [API] AMQP::Queue#initialize now accepts :arguments option that takes a hash. RabbitMQ\n[\e[32mVersion
         
     | 
| 
      
 152 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP#Logger is deprecated. It will be removed before 1.0 release.\n[\e[32mVersion
         
     | 
| 
      
 153 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP#fork is deprecated. It will be removed before 1.0 release.\n[\e[32mVersion
         
     | 
| 
      
 154 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP::RPC is deprecated. It will be removed before 1.0 release.\n[\e[32mVersion
         
     | 
| 
      
 155 
     | 
    
         
            +
              0.8.0\e[0m] [FEATURE] Significant improvements to the documentation\n[\e[32mVersion
         
     | 
| 
      
 156 
     | 
    
         
            +
              0.8.0\e[0m] [FEATURE] Support for RabbitMQ extensions to AMQP 0.9.1\n[\e[32mVersion
         
     | 
| 
      
 157 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP::Exchange#publish now accepts (an optional) block that is
         
     | 
| 
      
 158 
     | 
    
         
            +
              called as soon as message\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Channel.new now
         
     | 
| 
      
 159 
     | 
    
         
            +
              accepts (an optional) block and yields newly opened channel to it as soon as\n[\e[32mVersion
         
     | 
| 
       165 
160 
     | 
    
         
             
              0.8.0\e[0m] [API] AMQP::Header#ack now can acknowledge multiple deliveries\n[\e[32mVersion
         
     | 
| 
       166 
161 
     | 
    
         
             
              0.8.0\e[0m] [API] AMQP::Exchange#delete now takes (an optional) block that is called
         
     | 
| 
       167 
162 
     | 
    
         
             
              when exchange.delete-ok response arrives.\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Header
         
     | 
| 
       168 
163 
     | 
    
         
             
              now implements #to_hash\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Queue#pop block
         
     | 
| 
       169 
     | 
    
         
            -
              now can take 1, 2 or  
     | 
| 
       170 
     | 
    
         
            -
               
     | 
| 
       171 
     | 
    
         
            -
               
     | 
| 
       172 
     | 
    
         
            -
               
     | 
| 
       173 
     | 
    
         
            -
              0.8.0\e[0m] [API] AMQP::Queue# 
     | 
| 
       174 
     | 
    
         
            -
               
     | 
| 
       175 
     | 
    
         
            -
               
     | 
| 
       176 
     | 
    
         
            -
               
     | 
| 
       177 
     | 
    
         
            -
               
     | 
| 
       178 
     | 
    
         
            -
               
     | 
| 
       179 
     | 
    
         
            -
               
     | 
| 
       180 
     | 
    
         
            -
               
     | 
| 
       181 
     | 
    
         
            -
               
     | 
| 
       182 
     | 
    
         
            -
               
     | 
| 
       183 
     | 
    
         
            -
               
     | 
| 
       184 
     | 
    
         
            -
               
     | 
| 
      
 164 
     | 
    
         
            +
              now can take 1, 2 or 3 arguments.\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Queue#purge
         
     | 
| 
      
 165 
     | 
    
         
            +
              \ now takes an optional block which is called when queue.purge-ok response arrives.\n[\e[32mVersion
         
     | 
| 
      
 166 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP::Queue#delete now takes an optional block which is called
         
     | 
| 
      
 167 
     | 
    
         
            +
              when queue.delete-ok response arrives.\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Queue#delete
         
     | 
| 
      
 168 
     | 
    
         
            +
              now accepts :nowait option.\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Queue#unbind
         
     | 
| 
      
 169 
     | 
    
         
            +
              now takes an optional block which is called when queue.unbind-ok response arrives.\n[\e[32mVersion
         
     | 
| 
      
 170 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP::Queue#unbind now accepts :routing_key as alias to :key.
         
     | 
| 
      
 171 
     | 
    
         
            +
              we believe it is a good idea to use AMQP terms.\n[\e[32mVersion 0.8.0\e[0m] [API]
         
     | 
| 
      
 172 
     | 
    
         
            +
              AMQP::Channel#prefetch now takes (an optional) 2nd parameter that specifies\n[\e[32mVersion
         
     | 
| 
      
 173 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP::Channel#recover now takes (an optional) callback that is
         
     | 
| 
      
 174 
     | 
    
         
            +
              called when\n[\e[32mVersion 0.8.0\e[0m] [API] AMQP::Frame is gone.\n[\e[32mVersion
         
     | 
| 
      
 175 
     | 
    
         
            +
              0.8.0\e[0m] [API] AMQP::Buffer is gone. Serialization & framing are now handled
         
     | 
| 
      
 176 
     | 
    
         
            +
              primarily by amq-protocol.\n[\e[32mVersion 0.8.0\e[0m] [FEATURE] AMQP gem is now
         
     | 
| 
      
 177 
     | 
    
         
            +
              AMQP 0.9.1 compatible: it runs atop of amq-client gem\n[\e[32mVersion 0.8.0\e[0m]
         
     | 
| 
      
 178 
     | 
    
         
            +
              [API] AMQP::Queue#publish is deprecated.\n[\e[32mVersion 0.8.0\e[0m] [API] Name
         
     | 
| 
      
 179 
     | 
    
         
            +
              argument for AMQP::Queue.new and Channel#queue is optional.\n"
         
     | 
| 
       185 
180 
     | 
    
         
             
            rdoc_options:
         
     | 
| 
       186 
181 
     | 
    
         
             
            - --include=examples --main README.textile
         
     | 
| 
       187 
182 
     | 
    
         
             
            require_paths:
         
     |