beetle 0.3.0.rc.4 → 0.3.0.rc.6
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/beetle.gemspec +8 -6
- data/features/support/test_daemons/redis.rb +1 -1
- data/lib/beetle.rb +8 -0
- data/lib/beetle/client.rb +1 -1
- data/lib/beetle/redis_configuration_client.rb +1 -1
- data/lib/beetle/redis_ext.rb +19 -0
- data/lib/beetle/version.rb +3 -0
- data/test/beetle/redis_ext_test.rb +15 -0
- metadata +129 -235
data/beetle.gemspec
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "beetle/version"
|
4
|
+
|
1
5
|
Gem::Specification.new do |s|
|
2
6
|
s.name = "beetle"
|
3
|
-
s.version =
|
7
|
+
s.version = Beetle::VERSION
|
4
8
|
s.required_rubygems_version = ">= 1.3.7"
|
5
|
-
s.authors = ["Stefan Kaes", "Pascal Friederich", "Ali Jelveh", "Sebastian Roebke"]
|
9
|
+
s.authors = ["Stefan Kaes", "Pascal Friederich", "Ali Jelveh", "Sebastian Roebke", "Larry Baltz"]
|
6
10
|
s.date = Time.now.strftime('%Y-%m-%d')
|
7
11
|
s.default_executable = "beetle"
|
8
12
|
s.description = "A highly available, reliable messaging infrastructure"
|
9
13
|
s.summary = "High Availability AMQP Messaging with Redundant Queues"
|
10
|
-
s.email = "
|
14
|
+
s.email = "opensource@xing.com"
|
11
15
|
s.executables = ["beetle"]
|
12
16
|
s.extra_rdoc_files = Dir['**/*.rdoc'] + %w(MIT-LICENSE)
|
13
17
|
s.files = Dir['{examples,lib}/**/*.rb'] + Dir['{features,script}/**/*'] + %w(beetle.gemspec Rakefile)
|
@@ -30,7 +34,7 @@ Gem::Specification.new do |s|
|
|
30
34
|
s.specification_version = 3
|
31
35
|
s.add_runtime_dependency("uuid4r", [">= 0.1.2"])
|
32
36
|
s.add_runtime_dependency("bunny", ["= 0.7.8"])
|
33
|
-
s.add_runtime_dependency("redis", ["= 2.2.
|
37
|
+
s.add_runtime_dependency("redis", ["= 2.2.2"])
|
34
38
|
s.add_runtime_dependency("hiredis", ["= 0.3.2"])
|
35
39
|
s.add_runtime_dependency("amq-client", ["= 0.8.3"])
|
36
40
|
s.add_runtime_dependency("amq-protocol", ["= 0.8.1"])
|
@@ -40,8 +44,6 @@ Gem::Specification.new do |s|
|
|
40
44
|
s.add_development_dependency("rake", [">= 0.8.7"])
|
41
45
|
s.add_development_dependency("mocha", [">= 0"])
|
42
46
|
s.add_development_dependency("rcov", [">= 0"])
|
43
|
-
s.add_development_dependency("redgreen", [">= 0"])
|
44
|
-
s.add_development_dependency("wirble", [">= 0"])
|
45
47
|
s.add_development_dependency("cucumber", [">= 0.7.2"])
|
46
48
|
s.add_development_dependency("daemon_controller", [">= 0"])
|
47
49
|
end
|
data/lib/beetle.rb
CHANGED
@@ -6,6 +6,7 @@ require 'redis'
|
|
6
6
|
require 'active_support'
|
7
7
|
require 'active_support/core_ext'
|
8
8
|
require 'set'
|
9
|
+
require 'socket'
|
9
10
|
|
10
11
|
module Beetle
|
11
12
|
Timer = if RUBY_VERSION < "1.9"
|
@@ -46,6 +47,13 @@ module Beetle
|
|
46
47
|
# AMQP options for subscribing to queues
|
47
48
|
SUBSCRIPTION_KEYS = [:ack, :key]
|
48
49
|
|
50
|
+
# determine the fully qualified domainname of the host we're running on
|
51
|
+
def self.hostname
|
52
|
+
name = Socket.gethostname
|
53
|
+
parts = name.split('.')
|
54
|
+
parts.size > 1 ? name : Socket.gethostbyname(parts.first).first
|
55
|
+
end
|
56
|
+
|
49
57
|
# use ruby's autoload mechanism for loading beetle classes
|
50
58
|
lib_dir = File.expand_path(File.dirname(__FILE__) + '/beetle/')
|
51
59
|
Dir["#{lib_dir}/*.rb"].each do |libfile|
|
data/lib/beetle/client.rb
CHANGED
data/lib/beetle/redis_ext.rb
CHANGED
@@ -50,4 +50,23 @@ class Redis #:nodoc:
|
|
50
50
|
info = info_with_rescue
|
51
51
|
info["role"] == "slave" && info["master_host"] == host && info["master_port"] == port.to_s
|
52
52
|
end
|
53
|
+
|
54
|
+
# redis 2.2.2 shutdown implementation does not disconnect from the redis server.
|
55
|
+
# this leaves the connection in an inconsistent state and causes the next command to silently fail.
|
56
|
+
# this in turn breaks our cucumber test scenarios.
|
57
|
+
# fix this here, until a new version is released which fixes the problem.
|
58
|
+
|
59
|
+
alias_method :broken_shutdown, :shutdown
|
60
|
+
|
61
|
+
# Synchronously save the dataset to disk and then shut down the server.
|
62
|
+
def shutdown
|
63
|
+
synchronize do
|
64
|
+
begin
|
65
|
+
@client.call_without_reply [:shutdown]
|
66
|
+
ensure
|
67
|
+
@client.disconnect
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
53
72
|
end
|
@@ -60,4 +60,19 @@ module Beetle
|
|
60
60
|
assert defined?(Hiredis)
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
class BrokenRedisShutdownTest < Test::Unit::TestCase
|
65
|
+
def setup
|
66
|
+
@r = Redis.new(:host => "localhost", :port => 6390)
|
67
|
+
end
|
68
|
+
|
69
|
+
# if this test fails after upgrading redis, we can probably remove
|
70
|
+
# our custom shutdown method from redis_ext.rb
|
71
|
+
test "redis shutdown implementation is broken" do
|
72
|
+
@r.client.expects(:call_without_reply).with([:shutdown]).once
|
73
|
+
@r.client.expects(:disconnect).never
|
74
|
+
@r.broken_shutdown
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
63
78
|
end
|
metadata
CHANGED
@@ -1,288 +1,188 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: beetle
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0.rc.6
|
5
5
|
prerelease: 6
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 0
|
10
|
-
- rc
|
11
|
-
- 4
|
12
|
-
version: 0.3.0.rc.4
|
13
6
|
platform: ruby
|
14
|
-
authors:
|
7
|
+
authors:
|
15
8
|
- Stefan Kaes
|
16
9
|
- Pascal Friederich
|
17
10
|
- Ali Jelveh
|
18
11
|
- Sebastian Roebke
|
12
|
+
- Larry Baltz
|
19
13
|
autorequire:
|
20
14
|
bindir: bin
|
21
15
|
cert_chain: []
|
22
|
-
|
23
|
-
date: 2011-10-11 00:00:00 +02:00
|
16
|
+
date: 2011-10-22 00:00:00.000000000 +02:00
|
24
17
|
default_executable: beetle
|
25
|
-
dependencies:
|
26
|
-
- !ruby/object:Gem::Dependency
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
27
20
|
name: uuid4r
|
28
|
-
|
29
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
21
|
+
requirement: &2151634120 !ruby/object:Gem::Requirement
|
30
22
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
hash: 31
|
35
|
-
segments:
|
36
|
-
- 0
|
37
|
-
- 1
|
38
|
-
- 2
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
39
26
|
version: 0.1.2
|
40
27
|
type: :runtime
|
41
|
-
version_requirements: *id001
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: bunny
|
44
28
|
prerelease: false
|
45
|
-
|
29
|
+
version_requirements: *2151634120
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: bunny
|
32
|
+
requirement: &2151633580 !ruby/object:Gem::Requirement
|
46
33
|
none: false
|
47
|
-
requirements:
|
48
|
-
- -
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
hash: 19
|
51
|
-
segments:
|
52
|
-
- 0
|
53
|
-
- 7
|
54
|
-
- 8
|
34
|
+
requirements:
|
35
|
+
- - =
|
36
|
+
- !ruby/object:Gem::Version
|
55
37
|
version: 0.7.8
|
56
38
|
type: :runtime
|
57
|
-
version_requirements: *id002
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: redis
|
60
39
|
prerelease: false
|
61
|
-
|
40
|
+
version_requirements: *2151633580
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: redis
|
43
|
+
requirement: &2151633100 !ruby/object:Gem::Requirement
|
62
44
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
|
67
|
-
segments:
|
68
|
-
- 2
|
69
|
-
- 2
|
70
|
-
- 0
|
71
|
-
version: 2.2.0
|
45
|
+
requirements:
|
46
|
+
- - =
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 2.2.2
|
72
49
|
type: :runtime
|
73
|
-
version_requirements: *id003
|
74
|
-
- !ruby/object:Gem::Dependency
|
75
|
-
name: hiredis
|
76
50
|
prerelease: false
|
77
|
-
|
51
|
+
version_requirements: *2151633100
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: hiredis
|
54
|
+
requirement: &2151632560 !ruby/object:Gem::Requirement
|
78
55
|
none: false
|
79
|
-
requirements:
|
80
|
-
- -
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
hash: 23
|
83
|
-
segments:
|
84
|
-
- 0
|
85
|
-
- 3
|
86
|
-
- 2
|
56
|
+
requirements:
|
57
|
+
- - =
|
58
|
+
- !ruby/object:Gem::Version
|
87
59
|
version: 0.3.2
|
88
60
|
type: :runtime
|
89
|
-
version_requirements: *id004
|
90
|
-
- !ruby/object:Gem::Dependency
|
91
|
-
name: amq-client
|
92
61
|
prerelease: false
|
93
|
-
|
62
|
+
version_requirements: *2151632560
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: amq-client
|
65
|
+
requirement: &2151632020 !ruby/object:Gem::Requirement
|
94
66
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
hash: 57
|
99
|
-
segments:
|
100
|
-
- 0
|
101
|
-
- 8
|
102
|
-
- 3
|
67
|
+
requirements:
|
68
|
+
- - =
|
69
|
+
- !ruby/object:Gem::Version
|
103
70
|
version: 0.8.3
|
104
71
|
type: :runtime
|
105
|
-
version_requirements: *id005
|
106
|
-
- !ruby/object:Gem::Dependency
|
107
|
-
name: amq-protocol
|
108
72
|
prerelease: false
|
109
|
-
|
73
|
+
version_requirements: *2151632020
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: amq-protocol
|
76
|
+
requirement: &2151631540 !ruby/object:Gem::Requirement
|
110
77
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
hash: 61
|
115
|
-
segments:
|
116
|
-
- 0
|
117
|
-
- 8
|
118
|
-
- 1
|
78
|
+
requirements:
|
79
|
+
- - =
|
80
|
+
- !ruby/object:Gem::Version
|
119
81
|
version: 0.8.1
|
120
82
|
type: :runtime
|
121
|
-
version_requirements: *id006
|
122
|
-
- !ruby/object:Gem::Dependency
|
123
|
-
name: amqp
|
124
83
|
prerelease: false
|
125
|
-
|
84
|
+
version_requirements: *2151631540
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: amqp
|
87
|
+
requirement: &2151631000 !ruby/object:Gem::Requirement
|
126
88
|
none: false
|
127
|
-
requirements:
|
128
|
-
- -
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
hash: 63
|
131
|
-
segments:
|
132
|
-
- 0
|
133
|
-
- 8
|
134
|
-
- 0
|
89
|
+
requirements:
|
90
|
+
- - =
|
91
|
+
- !ruby/object:Gem::Version
|
135
92
|
version: 0.8.0
|
136
93
|
type: :runtime
|
137
|
-
version_requirements: *id007
|
138
|
-
- !ruby/object:Gem::Dependency
|
139
|
-
name: activesupport
|
140
94
|
prerelease: false
|
141
|
-
|
95
|
+
version_requirements: *2151631000
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: activesupport
|
98
|
+
requirement: &2151630480 !ruby/object:Gem::Requirement
|
142
99
|
none: false
|
143
|
-
requirements:
|
144
|
-
- -
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
hash: 11
|
147
|
-
segments:
|
148
|
-
- 2
|
149
|
-
- 3
|
150
|
-
- 4
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
151
103
|
version: 2.3.4
|
152
104
|
type: :runtime
|
153
|
-
version_requirements: *id008
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
|
-
name: daemons
|
156
105
|
prerelease: false
|
157
|
-
|
106
|
+
version_requirements: *2151630480
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: daemons
|
109
|
+
requirement: &2151629940 !ruby/object:Gem::Requirement
|
158
110
|
none: false
|
159
|
-
requirements:
|
160
|
-
- -
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
hash: 3
|
163
|
-
segments:
|
164
|
-
- 1
|
165
|
-
- 0
|
166
|
-
- 10
|
111
|
+
requirements:
|
112
|
+
- - ! '>='
|
113
|
+
- !ruby/object:Gem::Version
|
167
114
|
version: 1.0.10
|
168
115
|
type: :runtime
|
169
|
-
version_requirements: *id009
|
170
|
-
- !ruby/object:Gem::Dependency
|
171
|
-
name: rake
|
172
116
|
prerelease: false
|
173
|
-
|
117
|
+
version_requirements: *2151629940
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: rake
|
120
|
+
requirement: &2151629420 !ruby/object:Gem::Requirement
|
174
121
|
none: false
|
175
|
-
requirements:
|
176
|
-
- -
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
hash: 49
|
179
|
-
segments:
|
180
|
-
- 0
|
181
|
-
- 8
|
182
|
-
- 7
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
183
125
|
version: 0.8.7
|
184
126
|
type: :development
|
185
|
-
version_requirements: *id010
|
186
|
-
- !ruby/object:Gem::Dependency
|
187
|
-
name: mocha
|
188
|
-
prerelease: false
|
189
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
190
|
-
none: false
|
191
|
-
requirements:
|
192
|
-
- - ">="
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
hash: 3
|
195
|
-
segments:
|
196
|
-
- 0
|
197
|
-
version: "0"
|
198
|
-
type: :development
|
199
|
-
version_requirements: *id011
|
200
|
-
- !ruby/object:Gem::Dependency
|
201
|
-
name: rcov
|
202
127
|
prerelease: false
|
203
|
-
|
128
|
+
version_requirements: *2151629420
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: mocha
|
131
|
+
requirement: &2151628940 !ruby/object:Gem::Requirement
|
204
132
|
none: false
|
205
|
-
requirements:
|
206
|
-
- -
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
|
209
|
-
segments:
|
210
|
-
- 0
|
211
|
-
version: "0"
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
212
137
|
type: :development
|
213
|
-
version_requirements: *id012
|
214
|
-
- !ruby/object:Gem::Dependency
|
215
|
-
name: redgreen
|
216
138
|
prerelease: false
|
217
|
-
|
139
|
+
version_requirements: *2151628940
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rcov
|
142
|
+
requirement: &2151628460 !ruby/object:Gem::Requirement
|
218
143
|
none: false
|
219
|
-
requirements:
|
220
|
-
- -
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
|
223
|
-
segments:
|
224
|
-
- 0
|
225
|
-
version: "0"
|
144
|
+
requirements:
|
145
|
+
- - ! '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
226
148
|
type: :development
|
227
|
-
version_requirements: *id013
|
228
|
-
- !ruby/object:Gem::Dependency
|
229
|
-
name: wirble
|
230
149
|
prerelease: false
|
231
|
-
|
232
|
-
|
233
|
-
requirements:
|
234
|
-
- - ">="
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
hash: 3
|
237
|
-
segments:
|
238
|
-
- 0
|
239
|
-
version: "0"
|
240
|
-
type: :development
|
241
|
-
version_requirements: *id014
|
242
|
-
- !ruby/object:Gem::Dependency
|
150
|
+
version_requirements: *2151628460
|
151
|
+
- !ruby/object:Gem::Dependency
|
243
152
|
name: cucumber
|
244
|
-
|
245
|
-
requirement: &id015 !ruby/object:Gem::Requirement
|
153
|
+
requirement: &2151627860 !ruby/object:Gem::Requirement
|
246
154
|
none: false
|
247
|
-
requirements:
|
248
|
-
- -
|
249
|
-
- !ruby/object:Gem::Version
|
250
|
-
hash: 7
|
251
|
-
segments:
|
252
|
-
- 0
|
253
|
-
- 7
|
254
|
-
- 2
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
255
158
|
version: 0.7.2
|
256
159
|
type: :development
|
257
|
-
version_requirements: *id015
|
258
|
-
- !ruby/object:Gem::Dependency
|
259
|
-
name: daemon_controller
|
260
160
|
prerelease: false
|
261
|
-
|
161
|
+
version_requirements: *2151627860
|
162
|
+
- !ruby/object:Gem::Dependency
|
163
|
+
name: daemon_controller
|
164
|
+
requirement: &2151627360 !ruby/object:Gem::Requirement
|
262
165
|
none: false
|
263
|
-
requirements:
|
264
|
-
- -
|
265
|
-
- !ruby/object:Gem::Version
|
266
|
-
|
267
|
-
segments:
|
268
|
-
- 0
|
269
|
-
version: "0"
|
166
|
+
requirements:
|
167
|
+
- - ! '>='
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
270
170
|
type: :development
|
271
|
-
|
171
|
+
prerelease: false
|
172
|
+
version_requirements: *2151627360
|
272
173
|
description: A highly available, reliable messaging infrastructure
|
273
|
-
email:
|
274
|
-
executables:
|
174
|
+
email: opensource@xing.com
|
175
|
+
executables:
|
275
176
|
- beetle
|
276
177
|
extensions: []
|
277
|
-
|
278
|
-
extra_rdoc_files:
|
178
|
+
extra_rdoc_files:
|
279
179
|
- examples/README.rdoc
|
280
180
|
- features/README.rdoc
|
281
181
|
- README.rdoc
|
282
182
|
- REDIS_AUTO_FAILOVER.rdoc
|
283
183
|
- RELEASE_NOTES.rdoc
|
284
184
|
- MIT-LICENSE
|
285
|
-
files:
|
185
|
+
files:
|
286
186
|
- examples/attempts.rb
|
287
187
|
- examples/handler_class.rb
|
288
188
|
- examples/handling_exceptions.rb
|
@@ -311,6 +211,7 @@ files:
|
|
311
211
|
- lib/beetle/redis_master_file.rb
|
312
212
|
- lib/beetle/redis_server_info.rb
|
313
213
|
- lib/beetle/subscriber.rb
|
214
|
+
- lib/beetle/version.rb
|
314
215
|
- lib/beetle.rb
|
315
216
|
- features/README.rdoc
|
316
217
|
- features/redis_auto_failover.feature
|
@@ -353,40 +254,33 @@ files:
|
|
353
254
|
has_rdoc: true
|
354
255
|
homepage: http://xing.github.com/beetle/
|
355
256
|
licenses: []
|
356
|
-
|
357
|
-
|
358
|
-
|
257
|
+
post_install_message: ! " *********************************************************************************************\n\n
|
258
|
+
\ Please install the SystemTimer gem if you're running a ruby version < 1.9:\n
|
259
|
+
\ `gem install SystemTimer -v '=1.2.1'`\n See: http://ph7spot.com/musings/system-timer\n\n
|
260
|
+
\ *********************************************************************************************\n"
|
261
|
+
rdoc_options:
|
359
262
|
- --charset=UTF-8
|
360
|
-
require_paths:
|
263
|
+
require_paths:
|
361
264
|
- lib
|
362
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
265
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
363
266
|
none: false
|
364
|
-
requirements:
|
365
|
-
- -
|
366
|
-
- !ruby/object:Gem::Version
|
367
|
-
|
368
|
-
|
369
|
-
- 0
|
370
|
-
version: "0"
|
371
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
267
|
+
requirements:
|
268
|
+
- - ! '>='
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: '0'
|
271
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
372
272
|
none: false
|
373
|
-
requirements:
|
374
|
-
- -
|
375
|
-
- !ruby/object:Gem::Version
|
376
|
-
hash: 21
|
377
|
-
segments:
|
378
|
-
- 1
|
379
|
-
- 3
|
380
|
-
- 7
|
273
|
+
requirements:
|
274
|
+
- - ! '>='
|
275
|
+
- !ruby/object:Gem::Version
|
381
276
|
version: 1.3.7
|
382
277
|
requirements: []
|
383
|
-
|
384
278
|
rubyforge_project:
|
385
279
|
rubygems_version: 1.6.2
|
386
280
|
signing_key:
|
387
281
|
specification_version: 3
|
388
282
|
summary: High Availability AMQP Messaging with Redundant Queues
|
389
|
-
test_files:
|
283
|
+
test_files:
|
390
284
|
- test/beetle/amqp_gem_behavior_test.rb
|
391
285
|
- test/beetle/base_test.rb
|
392
286
|
- test/beetle/client_test.rb
|