stomp 1.1.9 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -330,7 +330,7 @@ module Stomp
330
330
  # Return a pending message if one is available, otherwise
331
331
  # return nil
332
332
  def poll
333
- # No need for a read lock here. The receive method eventually fullfills
333
+ # No need for a read lock here. The receive method eventually fulfills
334
334
  # that requirement.
335
335
  return nil if @socket.nil? || !@socket.ready?
336
336
  receive
@@ -338,7 +338,7 @@ module Stomp
338
338
 
339
339
  # Receive a frame, block until the frame is received
340
340
  def __old_receive
341
- # The recive my fail so we may need to retry.
341
+ # The receive may fail so we may need to retry.
342
342
  while TRUE
343
343
  begin
344
344
  used_socket = socket
@@ -358,7 +358,7 @@ module Stomp
358
358
 
359
359
  def receive
360
360
  super_result = __old_receive
361
- if super_result.nil? && @reliable
361
+ if super_result.nil? && @reliable && !closed?
362
362
  errstr = "connection.receive returning EOF as nil - resetting connection.\n"
363
363
  if @logger && @logger.respond_to?(:on_miscerr)
364
364
  @logger.on_miscerr(log_params, errstr)
@@ -375,18 +375,24 @@ module Stomp
375
375
 
376
376
  def _receive( read_socket )
377
377
  @read_semaphore.synchronize do
378
- line = read_socket.gets
379
-
380
- return nil if line.nil?
378
+ # Throw away leading newlines, which are actually trailing
379
+ # newlines from the preceding message.
380
+ begin
381
+ last_char = read_socket.getc
382
+ return nil if last_char.nil?
383
+ end until parse_char(last_char) != "\n"
384
+ read_socket.ungetc(last_char)
381
385
 
382
386
  # If the reading hangs for more than X seconds, abort the parsing process.
383
387
  # X defaults to 5. Override allowed in connection hash parameters.
384
388
  Timeout::timeout(@parse_timeout, Stomp::Error::PacketParsingTimeout) do
385
389
  # Reads the beginning of the message until it runs into a empty line
386
390
  message_header = ''
391
+ line = ''
387
392
  begin
388
- message_header += line
393
+ message_header << line
389
394
  line = read_socket.gets
395
+ return nil if line.nil?
390
396
  end until line =~ /^\s?\n$/
391
397
 
392
398
  # Checks if it includes content_length header
@@ -400,24 +406,8 @@ module Stomp
400
406
  raise Stomp::Error::InvalidMessageLength unless parse_char(read_socket.getc) == "\0"
401
407
  # Else reads, the rest of the message until the first \0
402
408
  else
403
- message_body += char while (char = parse_char(read_socket.getc)) != "\0"
404
- end
405
-
406
- # If the buffer isn't empty, reads trailing new lines.
407
- # Note: experiments with JRuby seem to show that .ready? never
408
- # returns true. This means that this code to drain trailing new
409
- # lines never runs using JRuby.
410
- while read_socket.ready?
411
- last_char = read_socket.getc
412
- break unless last_char
413
- if parse_char(last_char) != "\n"
414
- read_socket.ungetc(last_char)
415
- break
416
- end
409
+ message_body << char while (char = parse_char(read_socket.getc)) != "\0"
417
410
  end
418
- # And so, a JRuby hack. Remove any new lines at the start of the
419
- # next buffer.
420
- message_header.gsub!(/^\n?/, "")
421
411
 
422
412
  # Adds the excluded \n and \0 and tries to create a new message with it
423
413
  Message.new(message_header + "\n" + message_body + "\0")
@@ -507,15 +497,19 @@ module Stomp
507
497
  ssl.connect
508
498
  ssl
509
499
  end
510
-
500
+
511
501
  def close_socket
512
502
  begin
513
- @socket.close
503
+ # Need to set @closed = true before closing the socket
504
+ # within the @read_semaphore thread
505
+ @closed = true
506
+ @read_semaphore.synchronize do
507
+ @socket.close
508
+ end
514
509
  rescue
515
510
  #Ignoring if already closed
516
511
  end
517
-
518
- @closed = true
512
+ @closed
519
513
  end
520
514
 
521
515
  def open_socket
data/lib/stomp/version.rb CHANGED
@@ -2,7 +2,7 @@ module Stomp
2
2
  module Version #:nodoc: all
3
3
  MAJOR = 1
4
4
  MINOR = 1
5
- PATCH = 9
5
+ PATCH = 10
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
data/stomp.gemspec CHANGED
@@ -5,14 +5,14 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{stomp}
8
- s.version = "1.1.9"
8
+ s.version = "1.1.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{Brian McCallister}, %q{Marius Mathiesen}, %q{Thiago Morello}, %q{Guy M. Allard}]
12
- s.date = %q{2011-06-16}
11
+ s.authors = ["Brian McCallister", "Marius Mathiesen", "Thiago Morello", "Guy M. Allard"]
12
+ s.date = %q{2011-11-07}
13
13
  s.description = %q{Ruby client for the Stomp messaging protocol}
14
- s.email = [%q{brianm@apache.org}, %q{marius@stones.com}, %q{morellon@gmail.com}, %q{allard.guy.m@gmail.com}]
15
- s.executables = [%q{catstomp}, %q{stompcat}]
14
+ s.email = ["brianm@apache.org", "marius@stones.com", "morellon@gmail.com", "allard.guy.m@gmail.com"]
15
+ s.executables = ["catstomp", "stompcat"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE",
18
18
  "README.rdoc"
@@ -47,11 +47,27 @@ Gem::Specification.new do |s|
47
47
  "test/test_message.rb"
48
48
  ]
49
49
  s.homepage = %q{https://rubygems.org/gems/stomp}
50
- s.require_paths = [%q{lib}]
51
- s.rubygems_version = %q{1.8.5}
50
+ s.require_paths = ["lib"]
51
+ s.rubygems_version = %q{1.3.7}
52
52
  s.summary = %q{Ruby client for the Stomp messaging protocol}
53
+ s.test_files = [
54
+ "examples/consumer.rb",
55
+ "examples/logexamp.rb",
56
+ "examples/publisher.rb",
57
+ "examples/slogger.rb",
58
+ "spec/client_shared_examples.rb",
59
+ "spec/client_spec.rb",
60
+ "spec/connection_spec.rb",
61
+ "spec/message_spec.rb",
62
+ "spec/spec_helper.rb",
63
+ "test/test_client.rb",
64
+ "test/test_connection.rb",
65
+ "test/test_helper.rb",
66
+ "test/test_message.rb"
67
+ ]
53
68
 
54
69
  if s.respond_to? :specification_version then
70
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
55
71
  s.specification_version = 3
56
72
 
57
73
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
data/test/test_client.rb CHANGED
@@ -17,10 +17,10 @@ class TestClient < Test::Unit::TestCase
17
17
  end
18
18
 
19
19
  def test_ack_api_works
20
- @client.publish destination, message_text, {:suppress_content_length => true}
20
+ @client.publish make_destination, message_text, {:suppress_content_length => true}
21
21
 
22
22
  received = nil
23
- @client.subscribe(destination, {:ack => 'client'}) {|msg| received = msg}
23
+ @client.subscribe(make_destination, {:ack => 'client'}) {|msg| received = msg}
24
24
  sleep 0.01 until received
25
25
  assert_equal message_text, received.body
26
26
 
@@ -28,22 +28,22 @@ class TestClient < Test::Unit::TestCase
28
28
  @client.acknowledge(received) {|r| receipt = r}
29
29
  sleep 0.01 until receipt
30
30
  assert_not_nil receipt.headers['receipt-id']
31
- end
31
+ end unless ENV['STOMP_RABBIT']
32
32
 
33
33
  def test_asynch_subscribe
34
34
  received = false
35
- @client.subscribe(destination) {|msg| received = msg}
36
- @client.publish destination, message_text
35
+ @client.subscribe(make_destination) {|msg| received = msg}
36
+ @client.publish make_destination, message_text
37
37
  sleep 0.01 until received
38
38
 
39
39
  assert_equal message_text, received.body
40
40
  end
41
41
 
42
42
  def test_noack
43
- @client.publish destination, message_text
43
+ @client.publish make_destination, message_text
44
44
 
45
45
  received = nil
46
- @client.subscribe(destination, :ack => :client) {|msg| received = msg}
46
+ @client.subscribe(make_destination, :ack => :client) {|msg| received = msg}
47
47
  sleep 0.01 until received
48
48
  assert_equal message_text, received.body
49
49
  @client.close
@@ -52,21 +52,21 @@ class TestClient < Test::Unit::TestCase
52
52
 
53
53
  @client = Stomp::Client.new(user, passcode, host, port)
54
54
  received2 = nil
55
- @client.subscribe(destination) {|msg| received2 = msg}
55
+ @client.subscribe(make_destination) {|msg| received2 = msg}
56
56
  sleep 0.01 until received2
57
57
 
58
58
  assert_equal message_text, received2.body
59
59
  assert_equal received.body, received2.body
60
- assert_equal received.headers['message-id'], received2.headers['message-id']
60
+ assert_equal received.headers['message-id'], received2.headers['message-id'] unless ENV['STOMP_RABBIT']
61
61
  end
62
62
 
63
63
  def test_receipts
64
64
  receipt = false
65
- @client.publish(destination, message_text) {|r| receipt = r}
65
+ @client.publish(make_destination, message_text) {|r| receipt = r}
66
66
  sleep 0.1 until receipt
67
67
 
68
68
  message = nil
69
- @client.subscribe(destination) {|m| message = m}
69
+ @client.subscribe(make_destination) {|m| message = m}
70
70
  sleep 0.1 until message
71
71
  assert_equal message_text, message.body
72
72
  end
@@ -82,9 +82,9 @@ class TestClient < Test::Unit::TestCase
82
82
  end
83
83
 
84
84
  def test_publish_then_sub
85
- @client.publish destination, message_text
85
+ @client.publish make_destination, message_text
86
86
  message = nil
87
- @client.subscribe(destination) {|m| message = m}
87
+ @client.subscribe(make_destination) {|m| message = m}
88
88
  sleep 0.01 until message
89
89
 
90
90
  assert_equal message_text, message.body
@@ -92,17 +92,17 @@ class TestClient < Test::Unit::TestCase
92
92
 
93
93
  def test_subscribe_requires_block
94
94
  assert_raise(RuntimeError) do
95
- @client.subscribe destination
95
+ @client.subscribe make_destination
96
96
  end
97
97
  end
98
98
 
99
99
  def test_transactional_publish
100
100
  @client.begin 'tx1'
101
- @client.publish destination, message_text, :transaction => 'tx1'
101
+ @client.publish make_destination, message_text, :transaction => 'tx1'
102
102
  @client.commit 'tx1'
103
103
 
104
104
  message = nil
105
- @client.subscribe(destination) {|m| message = m}
105
+ @client.subscribe(make_destination) {|m| message = m}
106
106
  sleep 0.01 until message
107
107
 
108
108
  assert_equal message_text, message.body
@@ -110,25 +110,25 @@ class TestClient < Test::Unit::TestCase
110
110
 
111
111
  def test_transaction_publish_then_rollback
112
112
  @client.begin 'tx1'
113
- @client.publish destination, "first_message", :transaction => 'tx1'
113
+ @client.publish make_destination, "first_message", :transaction => 'tx1'
114
114
  @client.abort 'tx1'
115
115
 
116
116
  @client.begin 'tx1'
117
- @client.publish destination, "second_message", :transaction => 'tx1'
117
+ @client.publish make_destination, "second_message", :transaction => 'tx1'
118
118
  @client.commit 'tx1'
119
119
 
120
120
  message = nil
121
- @client.subscribe(destination) {|m| message = m}
121
+ @client.subscribe(make_destination) {|m| message = m}
122
122
  sleep 0.01 until message
123
123
  assert_equal "second_message", message.body
124
124
  end
125
125
 
126
126
  def test_transaction_ack_rollback_with_new_client
127
- @client.publish destination, message_text
127
+ @client.publish make_destination, message_text
128
128
 
129
129
  @client.begin 'tx1'
130
130
  message = nil
131
- @client.subscribe(destination, :ack => 'client') {|m| message = m}
131
+ @client.subscribe(make_destination, :ack => 'client') {|m| message = m}
132
132
  sleep 0.01 until message
133
133
  assert_equal message_text, message.body
134
134
  @client.acknowledge message, :transaction => 'tx1'
@@ -138,7 +138,7 @@ class TestClient < Test::Unit::TestCase
138
138
  # lets recreate the connection
139
139
  teardown
140
140
  setup
141
- @client.subscribe(destination, :ack => 'client') {|m| message = m}
141
+ @client.subscribe(make_destination, :ack => 'client') {|m| message = m}
142
142
 
143
143
  Timeout::timeout(4) do
144
144
  sleep 0.01 until message
@@ -151,8 +151,8 @@ class TestClient < Test::Unit::TestCase
151
151
  @client.commit 'tx2'
152
152
  end
153
153
 
154
- def test_raise_on_multiple_subscriptions_to_same_destination
155
- subscribe_dest = destination
154
+ def test_raise_on_multiple_subscriptions_to_same_make_destination
155
+ subscribe_dest = make_destination
156
156
  @client.subscribe(subscribe_dest) {|m| nil }
157
157
  assert_raise(RuntimeError) do
158
158
  @client.subscribe(subscribe_dest) {|m| nil }
@@ -160,7 +160,7 @@ class TestClient < Test::Unit::TestCase
160
160
  end
161
161
 
162
162
  def test_raise_on_multiple_subscriptions_to_same_id
163
- subscribe_dest = destination
163
+ subscribe_dest = make_destination
164
164
  @client.subscribe(subscribe_dest, {'id' => 'myid'}) {|m| nil }
165
165
  assert_raise(RuntimeError) do
166
166
  @client.subscribe(subscribe_dest, {'id' => 'myid'}) {|m| nil }
@@ -168,7 +168,7 @@ class TestClient < Test::Unit::TestCase
168
168
  end
169
169
 
170
170
  def test_raise_on_multiple_subscriptions_to_same_id_mixed
171
- subscribe_dest = destination
171
+ subscribe_dest = make_destination
172
172
  @client.subscribe(subscribe_dest, {'id' => 'myid'}) {|m| nil }
173
173
  assert_raise(RuntimeError) do
174
174
  @client.subscribe(subscribe_dest, {:id => 'myid'}) {|m| nil }
@@ -176,7 +176,7 @@ class TestClient < Test::Unit::TestCase
176
176
  end
177
177
 
178
178
  def test_asterisk_wildcard_subscribe
179
- queue_base_name = destination
179
+ queue_base_name = make_destination
180
180
  queue1 = queue_base_name + ".a"
181
181
  queue2 = queue_base_name + ".b"
182
182
  send_message = message_text
@@ -206,7 +206,7 @@ class TestClient < Test::Unit::TestCase
206
206
  end unless ENV['STOMP_NOWILD']
207
207
 
208
208
  def test_greater_than_wildcard_subscribe
209
- queue_base_name = destination + "."
209
+ queue_base_name = make_destination + "."
210
210
  queue1 = queue_base_name + "foo.a"
211
211
  queue2 = queue_base_name + "bar.a"
212
212
  queue3 = queue_base_name + "foo.b"
@@ -236,14 +236,14 @@ class TestClient < Test::Unit::TestCase
236
236
  end
237
237
  end
238
238
  assert results.all?{|a| a == true }
239
- end unless ENV['STOMP_NOWILD'] || ENV['STOMP_APOLLO']
239
+ end unless ENV['STOMP_NOWILD'] || ENV['STOMP_DOTQUEUE']
240
240
 
241
241
  def test_transaction_with_client_side_redelivery
242
- @client.publish destination, message_text
242
+ @client.publish make_destination, message_text
243
243
 
244
244
  @client.begin 'tx1'
245
245
  message = nil
246
- @client.subscribe(destination, :ack => 'client') { |m| message = m }
246
+ @client.subscribe(make_destination, :ack => 'client') { |m| message = m }
247
247
 
248
248
  sleep 0.1 while message.nil?
249
249
 
@@ -261,14 +261,14 @@ class TestClient < Test::Unit::TestCase
261
261
  @client.acknowledge message, :transaction => 'tx2'
262
262
  @client.commit 'tx2'
263
263
  end
264
-
264
+
265
265
  def test_connection_frame
266
266
  assert_not_nil @client.connection_frame
267
267
  end
268
268
 
269
269
  def test_unsubscribe
270
270
  message = nil
271
- dest = destination
271
+ dest = make_destination
272
272
  to_send = message_text
273
273
  client = Stomp::Client.new(user, passcode, host, port, true)
274
274
  assert_nothing_raised {
@@ -293,12 +293,12 @@ class TestClient < Test::Unit::TestCase
293
293
  end
294
294
  }
295
295
  assert_equal to_send, message_copy.body, "second body check"
296
- assert_equal message.headers['message-id'], message_copy.headers['message-id'], "header check"
296
+ assert_equal message.headers['message-id'], message_copy.headers['message-id'], "header check" unless ENV['STOMP_RABBIT']
297
297
  end
298
298
 
299
299
  def test_thread_one_subscribe
300
300
  msg = nil
301
- dest = destination
301
+ dest = make_destination
302
302
  Thread.new(@client) do |acli|
303
303
  assert_nothing_raised {
304
304
  acli.subscribe(dest) { |m| msg = m }
@@ -317,7 +317,7 @@ class TestClient < Test::Unit::TestCase
317
317
  #
318
318
  lock = Mutex.new
319
319
  msg_ctr = 0
320
- dest = destination
320
+ dest = make_destination
321
321
  1.upto(@max_threads) do |tnum|
322
322
  # Threads within threads .....
323
323
  Thread.new(@client) do |acli|
@@ -356,9 +356,4 @@ class TestClient < Test::Unit::TestCase
356
356
  name = caller_method_name unless name
357
357
  "test_client#" + name
358
358
  end
359
-
360
- def destination
361
- name = caller_method_name unless name
362
- qname = ENV['STOMP_APOLLO'] ? "/queue/test.ruby.stomp." + name : "/queue/test/ruby/stomp/" + name
363
- end
364
359
  end
@@ -32,7 +32,7 @@ class TestStomp < Test::Unit::TestCase
32
32
  { :suppress_content_length => true }
33
33
  msg2 = @conn.receive
34
34
  assert_equal "test_stomp#test_", msg2.body
35
- end
35
+ end unless ENV['STOMP_RABBIT']
36
36
 
37
37
  def test_explicit_receive
38
38
  @conn.subscribe make_destination
@@ -248,31 +248,21 @@ class TestStomp < Test::Unit::TestCase
248
248
  assert_equal "", msg.body
249
249
  end
250
250
 
251
- private
252
- def make_destination
253
- name = caller_method_name unless name
254
- qname = ENV['STOMP_APOLLO'] ? "/queue/test.ruby.stomp." + name : "/queue/test/ruby/stomp/" + name
255
- end
256
-
257
- def _test_transaction
258
- @conn.subscribe make_destination
251
+ def test_transaction
252
+ @conn.subscribe make_destination
259
253
 
260
- # Drain the destination.
261
- sleep 0.01 while
262
- sleep 0.01 while @conn.poll!=nil
254
+ @conn.begin "txA"
255
+ @conn.publish make_destination, "txn message", 'transaction' => "txA"
263
256
 
264
- @conn.begin "tx1"
265
- @conn.publish make_destination, "txn message", 'transaction' => "tx1"
257
+ @conn.publish make_destination, "first message"
266
258
 
267
- @conn.publish make_destination, "first message"
259
+ msg = @conn.receive
260
+ assert_equal "first message", msg.body
268
261
 
269
- sleep 0.01
270
- msg = @conn.receive
271
- assert_equal "first message", msg.body
262
+ @conn.commit "txA"
263
+ msg = @conn.receive
264
+ assert_equal "txn message", msg.body
265
+ end
272
266
 
273
- @conn.commit "tx1"
274
- msg = @conn.receive
275
- assert_equal "txn message", msg.body
276
- end
277
267
  end
278
268
 
data/test/test_helper.rb CHANGED
@@ -7,10 +7,10 @@ require 'stomp'
7
7
  # Helper routines
8
8
  module TestBase
9
9
  def user
10
- ENV['STOMP_USER'] || "test"
10
+ ENV['STOMP_USER'] || "guest"
11
11
  end
12
12
  def passcode
13
- ENV['STOMP_PASSCODE'] || "user"
13
+ ENV['STOMP_PASSCODE'] || "guest"
14
14
  end
15
15
  # Get host
16
16
  def host
@@ -34,5 +34,13 @@ module TestBase
34
34
  [file, line, method]
35
35
  end
36
36
  end
37
+
38
+ # Test helper methods
39
+
40
+ def make_destination
41
+ name = caller_method_name unless name
42
+ qname = ENV['STOMP_DOTQUEUE'] ? "/queue/test.ruby.stomp." + name : "/queue/test/ruby/stomp/" + name
43
+ end
44
+
37
45
  end
38
46
 
data/test/test_message.rb CHANGED
@@ -109,10 +109,5 @@ class TestMessageKcode < Test::Unit::TestCase
109
109
 
110
110
  end
111
111
 
112
- private
113
- def make_destination
114
- name = caller_method_name unless name
115
- qname = ENV['STOMP_APOLLO'] ? "/queue/test.rubyk01.stomp." + name : "/queue/test/rubyk01/stomp/" + name
116
- end
117
112
  end
118
113
 
metadata CHANGED
@@ -1,10 +1,15 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: stomp
3
- version: !ruby/object:Gem::Version
4
- version: 1.1.9
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 7
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 10
10
+ version: 1.1.10
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Brian McCallister
9
14
  - Marius Mathiesen
10
15
  - Thiago Morello
@@ -12,33 +17,40 @@ authors:
12
17
  autorequire:
13
18
  bindir: bin
14
19
  cert_chain: []
15
- date: 2011-06-16 00:00:00.000000000 Z
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
20
+
21
+ date: 2011-11-07 00:00:00 -02:00
22
+ default_executable:
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
18
25
  name: rspec
19
- requirement: &18191140 !ruby/object:Gem::Requirement
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
20
28
  none: false
21
- requirements:
22
- - - ! '>='
23
- - !ruby/object:Gem::Version
24
- version: '2.3'
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ hash: 5
33
+ segments:
34
+ - 2
35
+ - 3
36
+ version: "2.3"
25
37
  type: :development
26
- prerelease: false
27
- version_requirements: *18191140
38
+ version_requirements: *id001
28
39
  description: Ruby client for the Stomp messaging protocol
29
- email:
40
+ email:
30
41
  - brianm@apache.org
31
42
  - marius@stones.com
32
43
  - morellon@gmail.com
33
44
  - allard.guy.m@gmail.com
34
- executables:
45
+ executables:
35
46
  - catstomp
36
47
  - stompcat
37
48
  extensions: []
38
- extra_rdoc_files:
49
+
50
+ extra_rdoc_files:
39
51
  - LICENSE
40
52
  - README.rdoc
41
- files:
53
+ files:
42
54
  - CHANGELOG.rdoc
43
55
  - LICENSE
44
56
  - README.rdoc
@@ -66,28 +78,51 @@ files:
66
78
  - test/test_connection.rb
67
79
  - test/test_helper.rb
68
80
  - test/test_message.rb
81
+ has_rdoc: true
69
82
  homepage: https://rubygems.org/gems/stomp
70
83
  licenses: []
84
+
71
85
  post_install_message:
72
86
  rdoc_options: []
73
- require_paths:
87
+
88
+ require_paths:
74
89
  - lib
75
- required_ruby_version: !ruby/object:Gem::Requirement
90
+ required_ruby_version: !ruby/object:Gem::Requirement
76
91
  none: false
77
- requirements:
78
- - - ! '>='
79
- - !ruby/object:Gem::Version
80
- version: '0'
81
- required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 3
96
+ segments:
97
+ - 0
98
+ version: "0"
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
100
  none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
87
108
  requirements: []
109
+
88
110
  rubyforge_project:
89
- rubygems_version: 1.8.5
111
+ rubygems_version: 1.3.7
90
112
  signing_key:
91
113
  specification_version: 3
92
114
  summary: Ruby client for the Stomp messaging protocol
93
- test_files: []
115
+ test_files:
116
+ - examples/consumer.rb
117
+ - examples/logexamp.rb
118
+ - examples/publisher.rb
119
+ - examples/slogger.rb
120
+ - spec/client_shared_examples.rb
121
+ - spec/client_spec.rb
122
+ - spec/connection_spec.rb
123
+ - spec/message_spec.rb
124
+ - spec/spec_helper.rb
125
+ - test/test_client.rb
126
+ - test/test_connection.rb
127
+ - test/test_helper.rb
128
+ - test/test_message.rb