amq-client 0.9.10 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,11 +1,13 @@
1
- /*.gem
1
+ bin/*
2
2
  .bundle
3
- vendor/bundle
4
- .yardoc/*
5
3
  doc/*
6
- .rvmrc
4
+ /*.gem
7
5
  # see http://bit.ly/h2WJPm for reasoning
8
6
  Gemfile.lock
9
- vendor
7
+ .rbenv-gemsets
8
+ .rbenv-version
10
9
  .rbx/*
11
- bin/*
10
+ .rvmrc
11
+ vendor
12
+ vendor/bundle
13
+ .yardoc/*
data/amq-client.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # Dependencies
22
22
  s.add_dependency "eventmachine"
23
- s.add_dependency "amq-protocol", ">= 0.9.4"
23
+ s.add_dependency "amq-protocol", ">= 1.0.1"
24
24
 
25
25
 
26
26
  # RubyForge
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "amq/client/logging"
4
4
  require "amq/client/settings"
5
+ require "amq/client/async/auth_mechanism_adapter"
5
6
  require "amq/client/async/entity"
6
7
  require "amq/client/async/channel"
7
8
 
@@ -509,9 +510,17 @@ module AMQ
509
510
  # @api plugin
510
511
  # @see http://tools.ietf.org/rfc/rfc2595.txt RFC 2595
511
512
  def encode_credentials(username, password)
512
- "\0#{username}\0#{password}"
513
+ auth_mechanism_adapter.encode_credentials(username, password)
513
514
  end # encode_credentials(username, password)
514
515
 
516
+ # Retrieves an AuthMechanismAdapter that will encode credentials for
517
+ # this Adapter.
518
+ #
519
+ # @api plugin
520
+ def auth_mechanism_adapter
521
+ @auth_mechanism_adapter ||= AuthMechanismAdapter.for_adapter(self)
522
+ end
523
+
515
524
 
516
525
  # Processes a single frame.
517
526
  #
@@ -600,7 +609,7 @@ module AMQ
600
609
  # @status undefined. So lets do this. MK.
601
610
  opening!
602
611
 
603
- self.send_frame(Protocol::Connection::StartOk.encode(@client_properties, @mechanism, self.encode_credentials(username, password), @locale))
612
+ self.send_frame(Protocol::Connection::StartOk.encode(@client_properties, mechanism, self.encode_credentials(username, password), @locale))
604
613
  end
605
614
 
606
615
 
@@ -31,6 +31,7 @@ module AMQ
31
31
  # @option settings [String] :vhost ("/") Virtual host to use.
32
32
  # @option settings [String] :user ("guest") Username to use for authentication.
33
33
  # @option settings [String] :pass ("guest") Password to use for authentication.
34
+ # @option settings [String] :auth_mechanism ("PLAIN") SASL authentication mechanism to use.
34
35
  # @option settings [String] :ssl (false) Should be use TLS (SSL) for connection?
35
36
  # @option settings [String] :timeout (nil) Connection timeout.
36
37
  # @option settings [String] :logging (false) Turns logging on or off.
@@ -164,7 +165,7 @@ module AMQ
164
165
  raise self.class.authentication_failure_exception_class.new(settings)
165
166
  }
166
167
 
167
- @mechanism = "PLAIN"
168
+ @mechanism = @settings.fetch(:auth_mechanism, "PLAIN")
168
169
  @locale = @settings.fetch(:locale, "en_GB")
169
170
  @client_properties = Settings.client_properties.merge(@settings.fetch(:client_properties, Hash.new))
170
171
 
@@ -0,0 +1,69 @@
1
+ # encoding: utf-8
2
+
3
+ module AMQ::Client::Async
4
+ # Provides a flexible method for encoding AMQP credentials. PLAIN and
5
+ # EXTERNAL are provided by this gem. In order to implement a new
6
+ # authentication mechanism, create a subclass like so:
7
+ #
8
+ # class MyAuthMechanism < AMQ::Client::Async::AuthMechanismAdapter
9
+ # auth_mechanism "X-MYAUTH"
10
+ #
11
+ # def encode_credentials(username, password)
12
+ # # ...
13
+ # end
14
+ # end
15
+ class AuthMechanismAdapter
16
+
17
+ # Find and instantiate an AuthMechanismAdapter.
18
+ #
19
+ # @param [Adapter] adapter The Adapter for which to encode credentials.
20
+ # @return [AuthMechanismAdapter] An AuthMechanismAdapter that can encode
21
+ # credentials for the Adapter.
22
+ # @raise [NotImplementedError] The Adapter's mechanism does not
23
+ # correspond to any known AuthMechanismAdapter.
24
+ def self.for_adapter(adapter)
25
+ registry[adapter.mechanism].new adapter
26
+ end
27
+
28
+ protected
29
+
30
+ # Used by subclasses to declare the mechanisms that an
31
+ # AuthMechanismAdapter understands.
32
+ #
33
+ # @param [Array<String>] mechanisms One or more mechanisms that can be
34
+ # handled by the subclass.
35
+ def self.auth_mechanism(*mechanisms)
36
+ mechanisms.each {|mechanism| registry[mechanism] = self}
37
+ end
38
+
39
+ private
40
+
41
+ # Accesses the registry of AuthMechanismAdapter subclasses. Keys in
42
+ # this hash are the names of the authentication mechanisms; values are
43
+ # the classes that handle them. Referencing an unknown mechanism from
44
+ # this Hash will raise NotImplementedError.
45
+ def self.registry
46
+ @@registry ||= Hash.new {raise NotImplementedError}
47
+ end
48
+
49
+ public
50
+
51
+ # The Adapter that this AuthMechanismAdapter operates on behalf of.
52
+ attr_reader :adapter
53
+
54
+ private
55
+
56
+ # Create a new AuthMechanismAdapter. Users of this class should instead
57
+ # retrieve an instance through for_adapter.
58
+ def initialize(adapter)
59
+ @adapter = adapter
60
+ end
61
+ end
62
+ end
63
+
64
+ # pre-require builtin auth mechanisms
65
+ Dir[File.join(File.dirname(__FILE__),
66
+ File.basename(__FILE__, '.rb'),
67
+ '*')].each do |f|
68
+ require f
69
+ end
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+
3
+ module AMQ::Client::Async
4
+
5
+ # Manages the encoding of credentials for the EXTERNAL authentication
6
+ # mechanism.
7
+ class AuthMechanismAdapter::External < AuthMechanismAdapter
8
+
9
+ auth_mechanism "EXTERNAL"
10
+
11
+ # Encodes a username and password for the EXTERNAL mechanism. Since
12
+ # authentication is handled by an encapsulating protocol like SSL or
13
+ # UNIX domain sockets, EXTERNAL doesn't pass along any username or
14
+ # password information at all and this method always returns the
15
+ # empty string.
16
+ #
17
+ # @param [String] username The username to encode. This parameter is
18
+ # ignored.
19
+ # @param [String] password The password to encode. This parameter is
20
+ # ignored.
21
+ # @return [String] The username and password, encoded for the
22
+ # EXTERNAL mechanism. This is always the empty string.
23
+ def encode_credentials(username, password)
24
+ ""
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ module AMQ::Client::Async
4
+
5
+ # Manages the encoding of credentials for the PLAIN authentication
6
+ # mechanism.
7
+ class AuthMechanismAdapter::Plain < AuthMechanismAdapter
8
+
9
+ auth_mechanism "PLAIN"
10
+
11
+ # Encodes credentials for the given username and password. This
12
+ # involves sending the password across the wire in plaintext, so
13
+ # PLAIN authentication should only be used over a secure transport
14
+ # layer.
15
+ #
16
+ # @param [String] username The username to encode.
17
+ # @param [String] password The password to encode.
18
+ # @return [String] The username and password, encoded for the PLAIN
19
+ # mechanism.
20
+ def encode_credentials(username, password)
21
+ "\0#{username}\0#{password}"
22
+ end
23
+ end
24
+ end
@@ -60,9 +60,9 @@ module AMQ
60
60
  class ConnectionClosedError < StandardError
61
61
  def initialize(frame)
62
62
  if frame.respond_to?(:method_class)
63
- super("Trying to send frame through a closed connection. Frame is #{frame.inspect}")
64
- else
65
63
  super("Trying to send frame through a closed connection. Frame is #{frame.inspect}, method class is #{frame.method_class}")
64
+ else
65
+ super("Trying to send frame through a closed connection. Frame is #{frame.inspect}")
66
66
  end
67
67
  end # initialize
68
68
  end # class ConnectionClosedError
@@ -7,4 +7,3 @@ module AMQ
7
7
  Queue = Async::Queue
8
8
  end
9
9
  end
10
-
@@ -23,9 +23,10 @@ module AMQ
23
23
  :port => AMQ::Protocol::DEFAULT_PORT,
24
24
 
25
25
  # login
26
- :user => "guest",
27
- :pass => "guest",
28
- :vhost => "/",
26
+ :user => "guest",
27
+ :pass => "guest",
28
+ :auth_mechanism => "PLAIN",
29
+ :vhost => "/",
29
30
 
30
31
  # connection timeout
31
32
  :timeout => nil,
@@ -2,6 +2,6 @@
2
2
 
3
3
  module AMQ
4
4
  module Client
5
- VERSION = "0.9.10"
5
+ VERSION = "0.9.11"
6
6
  end
7
7
  end
@@ -10,6 +10,69 @@ describe AMQ::Client::EventMachineClient, "Connection.Start" do
10
10
  include EventedSpec::SpecHelper
11
11
  default_timeout 0.5
12
12
 
13
+ it "uses PLAIN authentication by default" do
14
+ em do
15
+ AMQ::Client::EventMachineClient.new(0).mechanism.should eq "PLAIN"
16
+ done
17
+ end
18
+ end
19
+
20
+ it "uses PLAIN authentication when explicitly set" do
21
+ em do
22
+ AMQ::Client::EventMachineClient.new(0, :auth_mechanism => "PLAIN").mechanism.should eq "PLAIN"
23
+ done
24
+ end
25
+ end
26
+
27
+ it "properly encodes username and password for PLAIN authentication" do
28
+ em do
29
+ client = AMQ::Client::EventMachineClient.new 0, :auth_mechanism => "PLAIN"
30
+ client.encode_credentials("user", "pass").should eq "\0user\0pass"
31
+ done
32
+ end
33
+ end
34
+
35
+ it "uses EXTERNAL authentication when explicitly set" do
36
+ em do
37
+ AMQ::Client::EventMachineClient.new(0, :auth_mechanism => "EXTERNAL").mechanism.should eq "EXTERNAL"
38
+ done
39
+ end
40
+ end
41
+
42
+ it "skips encoding username and password for EXTERNAL authentication" do
43
+ em do
44
+ client = AMQ::Client::EventMachineClient.new 0, :auth_mechanism => "EXTERNAL"
45
+ client.encode_credentials("user", "pass").should eq ""
46
+ done
47
+ end
48
+ end
49
+
50
+ it "allows user-defined authentication mechanisms" do
51
+ Class.new AMQ::Client::Async::AuthMechanismAdapter do
52
+ auth_mechanism "FOO"
53
+
54
+ def encode_credentials(username, password)
55
+ "foo"
56
+ end
57
+ end
58
+
59
+ em do
60
+ client = AMQ::Client::EventMachineClient.new 0, :auth_mechanism => "FOO"
61
+ client.encode_credentials("user", "pass").should eq "foo"
62
+ done
63
+ end
64
+ end
65
+
66
+ it "fails for unimplemented authentication mechanisms" do
67
+ em do
68
+ client = AMQ::Client::EventMachineClient.new 0, :auth_mechanism => "BAR"
69
+ expect do
70
+ client.encode_credentials("user", "pass")
71
+ end.to raise_error(NotImplementedError)
72
+ done
73
+ end
74
+ end
75
+
13
76
  context "with valid credentials" do
14
77
  it "should trigger the callback" do
15
78
  em do
metadata CHANGED
@@ -1,240 +1,252 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: amq-client
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.9.10
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.11
5
+ prerelease:
6
6
  platform: ruby
7
- authors:
8
- - Jakub Stastny
9
- - Michael S. Klishin
10
- - Theo Hultberg
11
- - Mark Abramov
12
- autorequire:
7
+ authors:
8
+ - Jakub Stastny
9
+ - Michael S. Klishin
10
+ - Theo Hultberg
11
+ - Mark Abramov
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
-
16
- date: 2012-12-02 00:00:00 Z
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
19
- name: eventmachine
20
- prerelease: false
21
- requirement: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: "0"
27
- type: :runtime
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
30
- name: amq-protocol
31
- prerelease: false
32
- requirement: &id002 !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ">="
36
- - !ruby/object:Gem::Version
37
- version: 0.9.4
38
- type: :runtime
39
- version_requirements: *id002
15
+ date: 2013-01-25 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: eventmachine
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: !binary |-
24
+ MA==
25
+ none: false
26
+ requirement: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: !binary |-
31
+ MA==
32
+ none: false
33
+ prerelease: false
34
+ type: :runtime
35
+ - !ruby/object:Gem::Dependency
36
+ name: amq-protocol
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: 1.0.1
42
+ none: false
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.1
48
+ none: false
49
+ prerelease: false
50
+ type: :runtime
40
51
  description: amq-client is a fully-featured, low-level AMQP 0.9.1 client with pluggable networking I/O adapters (EventMachine, cool.io, Eventpanda and so on) and supposed to back more opinionated AMQP clients (such as amqp gem) or be used directly in cases when access to more advanced AMQP 0.9.1 features is more important that convenient APIs
41
- email:
42
- - stastny@101ideas.cz
43
- - michael@novemberain.com
52
+ email:
53
+ - !binary |-
54
+ c3Rhc3RueUAxMDFpZGVhcy5jeg==
55
+ - michael@novemberain.com
44
56
  executables: []
45
-
46
57
  extensions: []
47
-
48
- extra_rdoc_files:
49
- - README.textile
50
- files:
51
- - .gitignore
52
- - .gitmodules
53
- - .rspec
54
- - .travis.yml
55
- - .yardopts
56
- - Gemfile
57
- - LICENSE
58
- - README.textile
59
- - amq-client.gemspec
60
- - bin/ci/before_build.sh
61
- - bin/set_test_suite_realms_up.sh
62
- - examples/coolio_adapter/basic_consume.rb
63
- - examples/coolio_adapter/basic_consume_with_acknowledgements.rb
64
- - examples/coolio_adapter/basic_consume_with_rejections.rb
65
- - examples/coolio_adapter/basic_publish.rb
66
- - examples/coolio_adapter/channel_close.rb
67
- - examples/coolio_adapter/example_helper.rb
68
- - examples/coolio_adapter/exchange_declare.rb
69
- - examples/coolio_adapter/kitchen_sink1.rb
70
- - examples/coolio_adapter/queue_bind.rb
71
- - examples/coolio_adapter/queue_purge.rb
72
- - examples/coolio_adapter/queue_unbind.rb
73
- - examples/eventmachine_adapter/authentication/connection_open_failure_due_to_invalid_vhost.rb
74
- - examples/eventmachine_adapter/authentication/plain_password_with_custom_role_credentials.rb
75
- - examples/eventmachine_adapter/authentication/plain_password_with_default_role_credentials.rb
76
- - examples/eventmachine_adapter/authentication/plain_password_with_incorrect_credentials_handled_with_a_callback.rb
77
- - examples/eventmachine_adapter/authentication/plain_password_with_incorrect_credentials_handled_with_a_rescue_block.rb
78
- - examples/eventmachine_adapter/basic_cancel.rb
79
- - examples/eventmachine_adapter/basic_consume.rb
80
- - examples/eventmachine_adapter/basic_consume_with_acknowledgements.rb
81
- - examples/eventmachine_adapter/basic_consume_with_rejections.rb
82
- - examples/eventmachine_adapter/basic_get.rb
83
- - examples/eventmachine_adapter/basic_get_with_empty_queue.rb
84
- - examples/eventmachine_adapter/basic_publish.rb
85
- - examples/eventmachine_adapter/basic_qos.rb
86
- - examples/eventmachine_adapter/basic_recover.rb
87
- - examples/eventmachine_adapter/basic_return.rb
88
- - examples/eventmachine_adapter/channel_close.rb
89
- - examples/eventmachine_adapter/channel_flow.rb
90
- - examples/eventmachine_adapter/channel_level_exception_handling.rb
91
- - examples/eventmachine_adapter/error_handling/connection_failure_callback.rb
92
- - examples/eventmachine_adapter/error_handling/connection_failure_exception.rb
93
- - examples/eventmachine_adapter/error_handling/connection_loss_handler_that_fails_over.rb
94
- - examples/eventmachine_adapter/error_handling/connection_loss_handler_with_automatic_recovery.rb
95
- - examples/eventmachine_adapter/error_handling/connection_loss_handler_with_manual_recovery.rb
96
- - examples/eventmachine_adapter/error_handling/handling_a_channel_level_exception.rb
97
- - examples/eventmachine_adapter/example_helper.rb
98
- - examples/eventmachine_adapter/exchange_declare.rb
99
- - examples/eventmachine_adapter/extensions/rabbitmq/handling_confirm_select_ok.rb
100
- - examples/eventmachine_adapter/extensions/rabbitmq/publisher_confirmations_with_transient_messages.rb
101
- - examples/eventmachine_adapter/extensions/rabbitmq/publisher_confirmations_with_unroutable_message.rb
102
- - examples/eventmachine_adapter/kitchen_sink1.rb
103
- - examples/eventmachine_adapter/queue_bind.rb
104
- - examples/eventmachine_adapter/queue_declare.rb
105
- - examples/eventmachine_adapter/queue_purge.rb
106
- - examples/eventmachine_adapter/queue_unbind.rb
107
- - examples/eventmachine_adapter/server_capabilities.rb
108
- - examples/eventmachine_adapter/tls/tls_without_peer_verification.rb
109
- - examples/eventmachine_adapter/tx_commit.rb
110
- - examples/eventmachine_adapter/tx_rollback.rb
111
- - examples/eventmachine_adapter/tx_select.rb
112
- - examples/tls_certificates/client/cert.pem
113
- - examples/tls_certificates/client/key.pem
114
- - examples/tls_certificates/client/keycert.p12
115
- - examples/tls_certificates/client/req.pem
116
- - examples/tls_certificates/server/cert.pem
117
- - examples/tls_certificates/server/key.pem
118
- - examples/tls_certificates/server/keycert.p12
119
- - examples/tls_certificates/server/req.pem
120
- - examples/tls_certificates/testca/cacert.cer
121
- - examples/tls_certificates/testca/cacert.pem
122
- - examples/tls_certificates/testca/certs/01.pem
123
- - examples/tls_certificates/testca/certs/02.pem
124
- - examples/tls_certificates/testca/index.txt
125
- - examples/tls_certificates/testca/index.txt.attr
126
- - examples/tls_certificates/testca/index.txt.attr.old
127
- - examples/tls_certificates/testca/index.txt.old
128
- - examples/tls_certificates/testca/openssl.cnf
129
- - examples/tls_certificates/testca/private/cakey.pem
130
- - examples/tls_certificates/testca/serial
131
- - examples/tls_certificates/testca/serial.old
132
- - irb.rb
133
- - lib/amq/client.rb
134
- - lib/amq/client/adapter.rb
135
- - lib/amq/client/adapters/coolio.rb
136
- - lib/amq/client/adapters/event_machine.rb
137
- - lib/amq/client/async/adapter.rb
138
- - lib/amq/client/async/adapters/coolio.rb
139
- - lib/amq/client/async/adapters/event_machine.rb
140
- - lib/amq/client/async/adapters/eventmachine.rb
141
- - lib/amq/client/async/callbacks.rb
142
- - lib/amq/client/async/channel.rb
143
- - lib/amq/client/async/consumer.rb
144
- - lib/amq/client/async/entity.rb
145
- - lib/amq/client/async/exchange.rb
146
- - lib/amq/client/async/extensions/rabbitmq/basic.rb
147
- - lib/amq/client/async/extensions/rabbitmq/cancel.rb
148
- - lib/amq/client/async/extensions/rabbitmq/confirm.rb
149
- - lib/amq/client/async/queue.rb
150
- - lib/amq/client/callbacks.rb
151
- - lib/amq/client/channel.rb
152
- - lib/amq/client/consumer_tag_generator.rb
153
- - lib/amq/client/entity.rb
154
- - lib/amq/client/exceptions.rb
155
- - lib/amq/client/exchange.rb
156
- - lib/amq/client/extensions/rabbitmq.rb
157
- - lib/amq/client/extensions/rabbitmq/basic.rb
158
- - lib/amq/client/extensions/rabbitmq/cancel.rb
159
- - lib/amq/client/extensions/rabbitmq/confirm.rb
160
- - lib/amq/client/framing/io/frame.rb
161
- - lib/amq/client/framing/string/frame.rb
162
- - lib/amq/client/handlers_registry.rb
163
- - lib/amq/client/logging.rb
164
- - lib/amq/client/openable.rb
165
- - lib/amq/client/queue.rb
166
- - lib/amq/client/server_named_entity.rb
167
- - lib/amq/client/settings.rb
168
- - lib/amq/client/version.rb
169
- - lib/amq/protocol/get_response.rb
170
- - spec/benchmarks/adapters.rb
171
- - spec/client/framing/io_frame_spec.rb
172
- - spec/client/framing/string_frame_spec.rb
173
- - spec/client/protocol/get_response_spec.rb
174
- - spec/integration/coolio/basic_ack_spec.rb
175
- - spec/integration/coolio/basic_cancel_spec.rb
176
- - spec/integration/coolio/basic_consume_spec.rb
177
- - spec/integration/coolio/basic_get_spec.rb
178
- - spec/integration/coolio/basic_return_spec.rb
179
- - spec/integration/coolio/channel_close_spec.rb
180
- - spec/integration/coolio/channel_flow_spec.rb
181
- - spec/integration/coolio/connection_close_spec.rb
182
- - spec/integration/coolio/connection_start_spec.rb
183
- - spec/integration/coolio/exchange_declare_spec.rb
184
- - spec/integration/coolio/spec_helper.rb
185
- - spec/integration/coolio/tx_commit_spec.rb
186
- - spec/integration/coolio/tx_rollback_spec.rb
187
- - spec/integration/eventmachine/basic_ack_spec.rb
188
- - spec/integration/eventmachine/basic_cancel_spec.rb
189
- - spec/integration/eventmachine/basic_consume_spec.rb
190
- - spec/integration/eventmachine/basic_get_spec.rb
191
- - spec/integration/eventmachine/basic_return_spec.rb
192
- - spec/integration/eventmachine/channel_close_spec.rb
193
- - spec/integration/eventmachine/channel_flow_spec.rb
194
- - spec/integration/eventmachine/concurrent_basic_publish_spec.rb
195
- - spec/integration/eventmachine/connection_close_spec.rb
196
- - spec/integration/eventmachine/connection_start_spec.rb
197
- - spec/integration/eventmachine/exchange_declare_spec.rb
198
- - spec/integration/eventmachine/queue_declare_spec.rb
199
- - spec/integration/eventmachine/regressions/amqp_gem_issue66_spec.rb
200
- - spec/integration/eventmachine/spec_helper.rb
201
- - spec/integration/eventmachine/tx_commit_spec.rb
202
- - spec/integration/eventmachine/tx_rollback_spec.rb
203
- - spec/regression/bad_frame_slicing_in_adapters_spec.rb
204
- - spec/spec_helper.rb
205
- - spec/unit/client/adapter_spec.rb
206
- - spec/unit/client/entity_spec.rb
207
- - spec/unit/client/logging_spec.rb
208
- - spec/unit/client/mixins/status_spec.rb
209
- - spec/unit/client/settings_spec.rb
210
- - spec/unit/client_spec.rb
211
- - tasks.rb
58
+ extra_rdoc_files:
59
+ - README.textile
60
+ files:
61
+ - .gitignore
62
+ - .gitmodules
63
+ - .rspec
64
+ - .travis.yml
65
+ - .yardopts
66
+ - Gemfile
67
+ - LICENSE
68
+ - README.textile
69
+ - amq-client.gemspec
70
+ - bin/ci/before_build.sh
71
+ - bin/set_test_suite_realms_up.sh
72
+ - examples/coolio_adapter/basic_consume.rb
73
+ - examples/coolio_adapter/basic_consume_with_acknowledgements.rb
74
+ - examples/coolio_adapter/basic_consume_with_rejections.rb
75
+ - examples/coolio_adapter/basic_publish.rb
76
+ - examples/coolio_adapter/channel_close.rb
77
+ - examples/coolio_adapter/example_helper.rb
78
+ - examples/coolio_adapter/exchange_declare.rb
79
+ - examples/coolio_adapter/kitchen_sink1.rb
80
+ - examples/coolio_adapter/queue_bind.rb
81
+ - examples/coolio_adapter/queue_purge.rb
82
+ - examples/coolio_adapter/queue_unbind.rb
83
+ - examples/eventmachine_adapter/authentication/connection_open_failure_due_to_invalid_vhost.rb
84
+ - examples/eventmachine_adapter/authentication/plain_password_with_custom_role_credentials.rb
85
+ - examples/eventmachine_adapter/authentication/plain_password_with_default_role_credentials.rb
86
+ - examples/eventmachine_adapter/authentication/plain_password_with_incorrect_credentials_handled_with_a_callback.rb
87
+ - examples/eventmachine_adapter/authentication/plain_password_with_incorrect_credentials_handled_with_a_rescue_block.rb
88
+ - examples/eventmachine_adapter/basic_cancel.rb
89
+ - examples/eventmachine_adapter/basic_consume.rb
90
+ - examples/eventmachine_adapter/basic_consume_with_acknowledgements.rb
91
+ - examples/eventmachine_adapter/basic_consume_with_rejections.rb
92
+ - examples/eventmachine_adapter/basic_get.rb
93
+ - examples/eventmachine_adapter/basic_get_with_empty_queue.rb
94
+ - examples/eventmachine_adapter/basic_publish.rb
95
+ - examples/eventmachine_adapter/basic_qos.rb
96
+ - examples/eventmachine_adapter/basic_recover.rb
97
+ - examples/eventmachine_adapter/basic_return.rb
98
+ - examples/eventmachine_adapter/channel_close.rb
99
+ - examples/eventmachine_adapter/channel_flow.rb
100
+ - examples/eventmachine_adapter/channel_level_exception_handling.rb
101
+ - examples/eventmachine_adapter/error_handling/connection_failure_callback.rb
102
+ - examples/eventmachine_adapter/error_handling/connection_failure_exception.rb
103
+ - examples/eventmachine_adapter/error_handling/connection_loss_handler_that_fails_over.rb
104
+ - examples/eventmachine_adapter/error_handling/connection_loss_handler_with_automatic_recovery.rb
105
+ - examples/eventmachine_adapter/error_handling/connection_loss_handler_with_manual_recovery.rb
106
+ - examples/eventmachine_adapter/error_handling/handling_a_channel_level_exception.rb
107
+ - examples/eventmachine_adapter/example_helper.rb
108
+ - examples/eventmachine_adapter/exchange_declare.rb
109
+ - examples/eventmachine_adapter/extensions/rabbitmq/handling_confirm_select_ok.rb
110
+ - examples/eventmachine_adapter/extensions/rabbitmq/publisher_confirmations_with_transient_messages.rb
111
+ - examples/eventmachine_adapter/extensions/rabbitmq/publisher_confirmations_with_unroutable_message.rb
112
+ - examples/eventmachine_adapter/kitchen_sink1.rb
113
+ - examples/eventmachine_adapter/queue_bind.rb
114
+ - examples/eventmachine_adapter/queue_declare.rb
115
+ - examples/eventmachine_adapter/queue_purge.rb
116
+ - examples/eventmachine_adapter/queue_unbind.rb
117
+ - examples/eventmachine_adapter/server_capabilities.rb
118
+ - examples/eventmachine_adapter/tls/tls_without_peer_verification.rb
119
+ - examples/eventmachine_adapter/tx_commit.rb
120
+ - examples/eventmachine_adapter/tx_rollback.rb
121
+ - examples/eventmachine_adapter/tx_select.rb
122
+ - examples/tls_certificates/client/cert.pem
123
+ - examples/tls_certificates/client/key.pem
124
+ - examples/tls_certificates/client/keycert.p12
125
+ - examples/tls_certificates/client/req.pem
126
+ - examples/tls_certificates/server/cert.pem
127
+ - examples/tls_certificates/server/key.pem
128
+ - examples/tls_certificates/server/keycert.p12
129
+ - examples/tls_certificates/server/req.pem
130
+ - examples/tls_certificates/testca/cacert.cer
131
+ - examples/tls_certificates/testca/cacert.pem
132
+ - examples/tls_certificates/testca/certs/01.pem
133
+ - examples/tls_certificates/testca/certs/02.pem
134
+ - examples/tls_certificates/testca/index.txt
135
+ - examples/tls_certificates/testca/index.txt.attr
136
+ - examples/tls_certificates/testca/index.txt.attr.old
137
+ - examples/tls_certificates/testca/index.txt.old
138
+ - examples/tls_certificates/testca/openssl.cnf
139
+ - examples/tls_certificates/testca/private/cakey.pem
140
+ - examples/tls_certificates/testca/serial
141
+ - examples/tls_certificates/testca/serial.old
142
+ - irb.rb
143
+ - lib/amq/client.rb
144
+ - lib/amq/client/adapter.rb
145
+ - lib/amq/client/adapters/coolio.rb
146
+ - lib/amq/client/adapters/event_machine.rb
147
+ - lib/amq/client/async/adapter.rb
148
+ - lib/amq/client/async/adapters/coolio.rb
149
+ - lib/amq/client/async/adapters/event_machine.rb
150
+ - lib/amq/client/async/adapters/eventmachine.rb
151
+ - lib/amq/client/async/auth_mechanism_adapter.rb
152
+ - lib/amq/client/async/auth_mechanism_adapter/external.rb
153
+ - lib/amq/client/async/auth_mechanism_adapter/plain.rb
154
+ - lib/amq/client/async/callbacks.rb
155
+ - lib/amq/client/async/channel.rb
156
+ - lib/amq/client/async/consumer.rb
157
+ - lib/amq/client/async/entity.rb
158
+ - lib/amq/client/async/exchange.rb
159
+ - lib/amq/client/async/extensions/rabbitmq/basic.rb
160
+ - lib/amq/client/async/extensions/rabbitmq/cancel.rb
161
+ - lib/amq/client/async/extensions/rabbitmq/confirm.rb
162
+ - lib/amq/client/async/queue.rb
163
+ - lib/amq/client/callbacks.rb
164
+ - lib/amq/client/channel.rb
165
+ - lib/amq/client/consumer_tag_generator.rb
166
+ - lib/amq/client/entity.rb
167
+ - lib/amq/client/exceptions.rb
168
+ - lib/amq/client/exchange.rb
169
+ - lib/amq/client/extensions/rabbitmq.rb
170
+ - lib/amq/client/extensions/rabbitmq/basic.rb
171
+ - lib/amq/client/extensions/rabbitmq/cancel.rb
172
+ - lib/amq/client/extensions/rabbitmq/confirm.rb
173
+ - lib/amq/client/framing/io/frame.rb
174
+ - lib/amq/client/framing/string/frame.rb
175
+ - lib/amq/client/handlers_registry.rb
176
+ - lib/amq/client/logging.rb
177
+ - lib/amq/client/openable.rb
178
+ - lib/amq/client/queue.rb
179
+ - lib/amq/client/server_named_entity.rb
180
+ - lib/amq/client/settings.rb
181
+ - lib/amq/client/version.rb
182
+ - lib/amq/protocol/get_response.rb
183
+ - spec/benchmarks/adapters.rb
184
+ - spec/client/framing/io_frame_spec.rb
185
+ - spec/client/framing/string_frame_spec.rb
186
+ - spec/client/protocol/get_response_spec.rb
187
+ - spec/integration/coolio/basic_ack_spec.rb
188
+ - spec/integration/coolio/basic_cancel_spec.rb
189
+ - spec/integration/coolio/basic_consume_spec.rb
190
+ - spec/integration/coolio/basic_get_spec.rb
191
+ - spec/integration/coolio/basic_return_spec.rb
192
+ - spec/integration/coolio/channel_close_spec.rb
193
+ - spec/integration/coolio/channel_flow_spec.rb
194
+ - spec/integration/coolio/connection_close_spec.rb
195
+ - spec/integration/coolio/connection_start_spec.rb
196
+ - spec/integration/coolio/exchange_declare_spec.rb
197
+ - spec/integration/coolio/spec_helper.rb
198
+ - spec/integration/coolio/tx_commit_spec.rb
199
+ - spec/integration/coolio/tx_rollback_spec.rb
200
+ - spec/integration/eventmachine/basic_ack_spec.rb
201
+ - spec/integration/eventmachine/basic_cancel_spec.rb
202
+ - spec/integration/eventmachine/basic_consume_spec.rb
203
+ - spec/integration/eventmachine/basic_get_spec.rb
204
+ - spec/integration/eventmachine/basic_return_spec.rb
205
+ - spec/integration/eventmachine/channel_close_spec.rb
206
+ - spec/integration/eventmachine/channel_flow_spec.rb
207
+ - spec/integration/eventmachine/concurrent_basic_publish_spec.rb
208
+ - spec/integration/eventmachine/connection_close_spec.rb
209
+ - spec/integration/eventmachine/connection_start_spec.rb
210
+ - spec/integration/eventmachine/exchange_declare_spec.rb
211
+ - spec/integration/eventmachine/queue_declare_spec.rb
212
+ - spec/integration/eventmachine/regressions/amqp_gem_issue66_spec.rb
213
+ - spec/integration/eventmachine/spec_helper.rb
214
+ - spec/integration/eventmachine/tx_commit_spec.rb
215
+ - spec/integration/eventmachine/tx_rollback_spec.rb
216
+ - spec/regression/bad_frame_slicing_in_adapters_spec.rb
217
+ - spec/spec_helper.rb
218
+ - spec/unit/client/adapter_spec.rb
219
+ - spec/unit/client/entity_spec.rb
220
+ - spec/unit/client/logging_spec.rb
221
+ - spec/unit/client/mixins/status_spec.rb
222
+ - spec/unit/client/settings_spec.rb
223
+ - spec/unit/client_spec.rb
224
+ - tasks.rb
212
225
  homepage: http://github.com/ruby-amqp/amq-client
213
226
  licenses: []
214
-
215
- post_install_message:
227
+ post_install_message:
216
228
  rdoc_options: []
217
-
218
- require_paths:
219
- - lib
220
- required_ruby_version: !ruby/object:Gem::Requirement
229
+ require_paths:
230
+ - lib
231
+ required_ruby_version: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ! '>='
234
+ - !ruby/object:Gem::Version
235
+ version: !binary |-
236
+ MA==
221
237
  none: false
222
- requirements:
223
- - - ">="
224
- - !ruby/object:Gem::Version
225
- version: "0"
226
- required_rubygems_version: !ruby/object:Gem::Requirement
238
+ required_rubygems_version: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ! '>='
241
+ - !ruby/object:Gem::Version
242
+ version: !binary |-
243
+ MA==
227
244
  none: false
228
- requirements:
229
- - - ">="
230
- - !ruby/object:Gem::Version
231
- version: "0"
232
245
  requirements: []
233
-
234
246
  rubyforge_project: amq-client
235
247
  rubygems_version: 1.8.24
236
- signing_key:
248
+ signing_key:
237
249
  specification_version: 3
238
250
  summary: amq-client is a fully-featured, low-level AMQP 0.9.1 client
239
251
  test_files: []
240
-
252
+ has_rdoc: