stomp_out 0.1.0 → 0.1.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8f12f905dba95872de613a615e4b4aa0e4207554
4
+ data.tar.gz: b9884ea302138b02faf1150b29ccbf98475b88d6
5
+ SHA512:
6
+ metadata.gz: 9dfcbd1d503e016e37ff944467bffbaa6af0c0653659fbc74102dbccd390a4a06c77372ae94d16cd98f05fd5fc07a5c688a73618c8dadc582f439afe4b664a9f
7
+ data.tar.gz: 95b7efa0be620bac871a4f59c4bdc8ac6fb625c73ff2eb1b1bc66cea8e070b8e4c0b9d845fe999dd56c52ca0ef0b9b5ae8f93025e0cf1205f5b3e90aa57a7a9d
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --format=nested
3
+ --backtrace
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,8 @@
1
1
  === 0.1.0 (2015-01-21)
2
2
 
3
3
  Initial commit
4
+
5
+ === 0.1.1 (2015-02-05)
6
+
7
+ Made gem testable under travis and added build status to README
8
+ Enabled Server#on_connect to override the session_id it is passed
data/README.rdoc CHANGED
@@ -1,3 +1,5 @@
1
+ {<img src="https://travis-ci.org/rightscale/stomp_out.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/rightscale/stomp_out]
2
+
1
3
  = Introduction
2
4
 
3
5
  StompOut is an implementation of the Simple Text Orientated Messaging Protocol (STOMP[http://stomp.github.io]).
data/Rakefile CHANGED
@@ -2,34 +2,42 @@
2
2
  require 'rubygems'
3
3
  require 'rake'
4
4
  require 'right_develop'
5
- require 'spec/rake/spectask'
5
+ require 'rspec/core/rake_task'
6
6
  require 'rubygems/package_task'
7
7
  require 'rake/clean'
8
8
 
9
- task :default => [:spec]
9
+ # These dependencies can be omitted using "bundle install --without"; tolerate their absence
10
+ ['jeweler'].each do |optional|
11
+ begin
12
+ require optional
13
+ rescue LoadError
14
+ # ignore
15
+ end
16
+ end
10
17
 
11
18
  desc "Run unit tests"
12
- Spec::Rake::SpecTask.new do |t|
13
- t.spec_files = Dir['**/*_spec.rb']
14
- t.spec_opts = lambda do
15
- IO.readlines(File.join(File.dirname(__FILE__), 'spec', 'spec.opts')).map {|l| l.chomp.split " "}.flatten
16
- end
19
+ task :default => :spec
20
+
21
+ desc "Run unit tests"
22
+ RSpec::Core::RakeTask.new do |t|
23
+ t.pattern = Dir['**/*_spec.rb']
17
24
  end
18
25
 
19
- require 'jeweler'
20
- Jeweler::Tasks.new do |gem|
21
- # gem is a Gem::Specification; see http://docs.rubygems.org/read/chapter/20 for more options
22
- gem.name = "stomp_out"
23
- gem.homepage = "https://github.com/rightscale/stomp_out"
24
- gem.license = "MIT"
25
- gem.summary = %Q{Client and server for STOMP protocol that operate outboard of separately supplied network connection.}
26
- gem.description = %Q{This implementation of STOMP is aimed at environments where a network connection, such as a WebSocket or TCP socket, is created and then raw data from that connection is passed to/from the STOMP client or server messaging layer provided by this gem.}
27
- gem.email = "support@rightscale.com"
28
- gem.authors = ["Lee Kirchhoff"]
29
- gem.files.exclude "Gemfile*"
30
- gem.files.exclude "spec/**/*"
26
+ if defined?(Jeweler)
27
+ Jeweler::Tasks.new do |gem|
28
+ # gem is a Gem::Specification; see http://docs.rubygems.org/read/chapter/20 for more options
29
+ gem.name = "stomp_out"
30
+ gem.homepage = "https://github.com/rightscale/stomp_out"
31
+ gem.license = "MIT"
32
+ gem.summary = %Q{Client and server for STOMP protocol that operate outboard of separately supplied network connection.}
33
+ gem.description = %Q{This implementation of STOMP is aimed at environments where a network connection, such as a WebSocket or TCP socket, is created and then raw data from that connection is passed to/from the STOMP client or server messaging layer provided by this gem.}
34
+ gem.email = "support@rightscale.com"
35
+ gem.authors = ["Lee Kirchhoff"]
36
+ gem.files.exclude "Gemfile*"
37
+ gem.files.exclude "spec/**/*"
38
+ end
39
+ Jeweler::RubygemsDotOrgTasks.new
31
40
  end
32
- Jeweler::RubygemsDotOrgTasks.new
33
41
 
34
42
  CLEAN.include("pkg")
35
43
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/examples/config.ru CHANGED
@@ -6,7 +6,7 @@ require 'rack/server'
6
6
  require 'eventmachine'
7
7
  require 'rack/websocket'
8
8
  require 'stomp_out'
9
- require 'websocket_server'
9
+ require './websocket_server'
10
10
 
11
11
  map '/' do
12
12
  run WebSocketServerApp.new
@@ -28,20 +28,20 @@ class WebSocketClient < StompOut::Client
28
28
  end
29
29
 
30
30
  def on_connected(frame, session_id, server_name)
31
- puts "connected to #{server_name} for session #{session_id}"
31
+ puts "connected to #{server_name.inspect} for session #{session_id.inspect}"
32
32
  if @message
33
33
  receipt_id = message(@destination, @message)
34
- @receipts[receipt_id] = "message to #{@destination}" if receipt_id
34
+ @receipts[receipt_id] = "message to #{@destination.inspect}" if receipt_id
35
35
  close
36
36
  else
37
- puts "subscribing to #{@destination} with ack #{@ack}"
37
+ puts "subscribe #{@destination.inspect} with ack #{@ack.inspect}"
38
38
  receipt_id = subscribe(@destination, @ack, receipt = true)
39
- @receipts[receipt_id] = "subscribe to #{@destination} with ack #{@ack}" if receipt_id
39
+ @receipts[receipt_id] = "subscribe #{@destination.inspect} with ack #{@ack.inspect}" if receipt_id
40
40
  end
41
41
  end
42
42
 
43
43
  def on_message(frame, destination, message, content_type, message_id, ack_id)
44
- puts "received #{content_type} message #{message_id} from #{destination} " +
44
+ puts "message #{message_id.inspect} of type #{content_type.inspect} from #{destination.inspect} " +
45
45
  "with ack #{ack_id.inspect}: #{message.inspect}"
46
46
  if @ack != "auto"
47
47
  receipt_id = ack(ack_id)
@@ -51,7 +51,7 @@ class WebSocketClient < StompOut::Client
51
51
 
52
52
  def on_receipt(frame, receipt_id)
53
53
  @subscribed = true if @receipts[receipt_id].to_s =~ /subscribe to/
54
- puts "received receipt #{receipt_id} for #{@receipts.delete(receipt_id).inspect}"
54
+ puts "receipt #{receipt_id.inspect} for #{@receipts.delete(receipt_id).inspect}"
55
55
  end
56
56
 
57
57
  def on_error(frame, error, details, receipt_id)
@@ -64,9 +64,9 @@ class WebSocketClient < StompOut::Client
64
64
  if connected?
65
65
  if @subscribed
66
66
  @subscribed = false
67
- puts "unsubscribing from #{@destination}"
67
+ puts "unsubscribe #{@destination.inspect}"
68
68
  receipt_id = unsubscribe(@destination)
69
- @receipts[receipt_id] = "unsubscribe from #{@destination}" if receipt_id
69
+ @receipts[receipt_id] = "unsubscribe #{@destination.inspect}" if receipt_id
70
70
  end
71
71
  receipt_id = disconnect
72
72
  @receipts[receipt_id] = "disconnect" if receipt_id
@@ -86,22 +86,21 @@ class WebSocketClientApp
86
86
 
87
87
  def start(options)
88
88
  ['INT', 'TERM'].each do |signal|
89
- trap(signal) do stop end
89
+ trap(signal) do EM.stop if EM.reactor_running? end
90
90
  end
91
91
 
92
92
  EM.run do
93
93
  @client = WebSocketClient.new(options.merge(:parent => self, :name => self.class.name, :auto_json => true))
94
94
  @websocket = Faye::WebSocket::Client.new(options[:url])
95
- @websocket.onerror = lambda { |e| puts "error #{e.message}"; stop }
96
- @websocket.onclose = lambda { |e| puts "close #{e.code} #{e.reason}"; stop }
97
- @websocket.onmessage = lambda { |e| puts "received #{e.data}"; @client.receive_data(JSON.load(e.data)) }
95
+ @websocket.onerror = lambda { |e| puts "error #{e.message.inspect}"; stop }
96
+ @websocket.onclose = lambda { |c| puts "close #{c.code} #{c.reason}"; stop }
97
+ @websocket.onmessage = lambda { |m| puts "STOMP < #{m.data.inspect}"; @client.receive_data(m.data) }
98
98
  @client.connect
99
99
  end
100
100
  end
101
101
 
102
102
  def send_data(data)
103
- data = JSON.dump(data)
104
- puts "sending: #{data}"
103
+ puts "STOMP > #{data.inspect}"
105
104
  @websocket.send(data)
106
105
  end
107
106
 
@@ -1,10 +1,10 @@
1
-
2
1
  # Example of a StompOut::Server subclass in a WebSocket environment
3
2
  class WebSocketServer < StompOut::Server
4
3
 
5
4
  def initialize(options = {})
6
5
  options = options.dup
7
6
  @parent = options.delete(:parent)
7
+ @session_id = options.delete(:session)
8
8
  @subscriptions = {}
9
9
  @message_ids = {}
10
10
  super(options.merge(:name => self.class.name))
@@ -15,7 +15,7 @@ class WebSocketServer < StompOut::Server
15
15
  end
16
16
 
17
17
  def on_connect(frame, login, passcode, host, session_id)
18
- true
18
+ @session_id
19
19
  end
20
20
 
21
21
  def on_message(frame, destination, message, content_type)
@@ -70,48 +70,39 @@ end
70
70
  # Simple WebSocket Rack application using WebSocketServer
71
71
  class WebSocketServerApp < Rack::WebSocket::Application
72
72
 
73
- @@servers = {}
74
- @@connections = {}
75
- @@connection_id = 0
73
+ @@sessions = {}
74
+ @@session_id = 0
76
75
  @@messages = Hash.new { |h, k| h[k] = [] }
77
76
  @@message_id = 0
78
77
 
79
78
  def on_open(env)
80
- socket = env["async.connection"]
81
- @@connections[socket] = @@connection_id += 1
82
- puts "opened connection #{@@connection_id}"
83
- @@servers[socket] = WebSocketServer.new(:parent => self)
79
+ @session_id = (@@session_id += 1)
80
+ puts "opened #{@session_id}"
81
+ @@sessions[@session_id] = WebSocketServer.new(:parent => self, :session => @session_id)
84
82
  end
85
83
 
86
84
  def on_close(env)
87
- socket = env["async.connection"]
88
- connection = @@connections.delete(socket)
89
- puts "closed connection #{connection}"
90
- @@servers.delete(socket)
85
+ puts "closed #{@session_id}"
86
+ @@sessions.delete(@session_id)
91
87
  end
92
88
 
93
89
  def on_error(env, error)
94
- socket = env["async.connection"]
95
- connection = @@connections[socket]
96
- STDERR.puts "error on connection #{connection} (#{error})"
90
+ STDERR.puts "error on #{@session_id} (#{error})"
97
91
  end
98
92
 
99
93
  def on_message(env, message)
100
- socket = env["async.connection"]
101
- connection = @@connections[socket]
102
- puts "received #{message} on connection #{connection}"
103
- @@servers[socket].receive_data(JSON.load(message))
94
+ puts "STOMP <#{@session_id} #{message.inspect}"
95
+ @@sessions[@session_id].receive_data(message)
104
96
  end
105
97
 
106
98
  def send_data(data)
107
- data = JSON.dump(data)
108
- puts "sending #{data}"
99
+ puts "STOMP >#{@session_id} #{data.inspect}"
109
100
  super(data)
110
101
  end
111
102
 
112
103
  def deliver_message(destination, message, content_type)
113
104
  @@messages[destination] << {:id => (@@message_id += 1).to_s, :message => message, :content_type => content_type}
114
- @@servers.each_value { |s| s.deliver_messages(destination, @@messages[destination]) }
105
+ @@sessions.each_value { |s| s.deliver_messages(destination, @@messages[destination]) }
115
106
  end
116
107
 
117
108
  def delete_message(id)
@@ -144,9 +144,11 @@ module StompOut
144
144
  # @param [String] host to which client wishes to connect; this could be
145
145
  # a virtual host or anything the application requires, or it may
146
146
  # be arbitrary
147
- # @param [String] session_id uniquely identifying the given STOMP session
147
+ # @param [String] session_id default for uniquely identifying the given STOMP session;
148
+ # can be overridden with return value
148
149
  #
149
- # @return [Boolean] true if connection accepted, otherwise false
150
+ # @return [Boolean, String] true or a server assigned session ID string if connection accepted,
151
+ # otherwise false
150
152
  def on_connect(frame, login, passcode, host, session_id)
151
153
  raise "Not implemented"
152
154
  end
@@ -371,16 +373,18 @@ module StompOut
371
373
  # No need to pass frame to ProtocolError because connect does not permit "receipt" header
372
374
  raise ProtocolError.new("Receipt not permitted", frame) if frame.headers["receipt"]
373
375
  host = frame.require(@version, "host" => ["1.0"])
374
- @session_id = SimpleUUID::UUID.new.to_guid
375
- headers = {"version" => @version, "session" => @session_id}
376
+ headers = {"version" => @version}
376
377
  if (rate = frame.headers["heart-beat"])
377
378
  @heartbeat = Heartbeat.new(self, rate, @options[:min_send_interval] || MIN_SEND_HEARTBEAT,
378
379
  @options[:desired_receive_interval] || DESIRED_RECEIVE_HEARTBEAT)
379
380
  headers["heart-beat"] = [@heartbeat.outgoing_rate, @heartbeat.incoming_rate].join(",")
380
381
  end
381
382
  headers["server"] = @server_name if @server_name
382
- if on_connect(frame, frame.headers["login"], frame.headers["passcode"], host, @session_id)
383
+ default_session_id = SimpleUUID::UUID.new.to_guid
384
+ if (result = on_connect(frame, frame.headers["login"], frame.headers["passcode"], host, default_session_id))
383
385
  @connected = true
386
+ @session_id = (result.is_a?(String) || result.is_a?(Integer)) ? result.to_s : default_session_id
387
+ headers["session"] = @session_id
384
388
  send_frame("CONNECTED", headers)
385
389
  @heartbeat.start if @heartbeat
386
390
  else
data/stomp_out.gemspec CHANGED
@@ -2,14 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: stomp_out 0.1.1 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "stomp_out"
8
- s.version = "0.1.0"
9
+ s.version = "0.1.1"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Lee Kirchhoff"]
12
- s.date = "2015-02-03"
14
+ s.date = "2015-02-06"
13
15
  s.description = "This implementation of STOMP is aimed at environments where a network connection, such as a WebSocket or TCP socket, is created and then raw data from that connection is passed to/from the STOMP client or server messaging layer provided by this gem."
14
16
  s.email = "support@rightscale.com"
15
17
  s.extra_rdoc_files = [
@@ -17,6 +19,7 @@ Gem::Specification.new do |s|
17
19
  "README.rdoc"
18
20
  ]
19
21
  s.files = [
22
+ ".rspec",
20
23
  ".travis.yml",
21
24
  "CHANGELOG.rdoc",
22
25
  "LICENSE",
@@ -37,59 +40,37 @@ Gem::Specification.new do |s|
37
40
  ]
38
41
  s.homepage = "https://github.com/rightscale/stomp_out"
39
42
  s.licenses = ["MIT"]
40
- s.require_paths = ["lib"]
41
- s.rubygems_version = "1.8.15"
43
+ s.rubygems_version = "2.2.2"
42
44
  s.summary = "Client and server for STOMP protocol that operate outboard of separately supplied network connection."
43
45
 
44
46
  if s.respond_to? :specification_version then
45
- s.specification_version = 3
47
+ s.specification_version = 4
46
48
 
47
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
50
  s.add_runtime_dependency(%q<json>, ["~> 1.4"])
49
51
  s.add_runtime_dependency(%q<simple_uuid>, ["~> 0.2"])
50
- s.add_development_dependency(%q<eventmachine>, ["~> 1.0"])
51
- s.add_development_dependency(%q<faye-websocket>, ["~> 0.7"])
52
- s.add_development_dependency(%q<rack>, ["~> 1.5"])
53
- s.add_development_dependency(%q<websocket-rack>, ["~> 0.4"])
54
- s.add_development_dependency(%q<thin>, [">= 0"])
55
- s.add_development_dependency(%q<debugger>, ["~> 1.5"])
56
- s.add_development_dependency(%q<flexmock>, ["~> 0.8"])
57
- s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
58
- s.add_development_dependency(%q<rake>, ["~> 0.9.2.2"])
59
- s.add_development_dependency(%q<rspec>, ["~> 1.3"])
60
- s.add_development_dependency(%q<right_develop>, ["~> 3.1"])
61
- s.add_development_dependency(%q<ruby-debug>, ["~> 0.10"])
52
+ s.add_development_dependency(%q<rake>, ["~> 10.0"])
53
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
54
+ s.add_development_dependency(%q<ruby-debug>, [">= 0"])
55
+ s.add_development_dependency(%q<pry>, [">= 0"])
56
+ s.add_development_dependency(%q<pry-byebug>, [">= 0"])
62
57
  else
63
58
  s.add_dependency(%q<json>, ["~> 1.4"])
64
59
  s.add_dependency(%q<simple_uuid>, ["~> 0.2"])
65
- s.add_dependency(%q<eventmachine>, ["~> 1.0"])
66
- s.add_dependency(%q<faye-websocket>, ["~> 0.7"])
67
- s.add_dependency(%q<rack>, ["~> 1.5"])
68
- s.add_dependency(%q<websocket-rack>, ["~> 0.4"])
69
- s.add_dependency(%q<thin>, [">= 0"])
70
- s.add_dependency(%q<debugger>, ["~> 1.5"])
71
- s.add_dependency(%q<flexmock>, ["~> 0.8"])
72
- s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
73
- s.add_dependency(%q<rake>, ["~> 0.9.2.2"])
74
- s.add_dependency(%q<rspec>, ["~> 1.3"])
75
- s.add_dependency(%q<right_develop>, ["~> 3.1"])
76
- s.add_dependency(%q<ruby-debug>, ["~> 0.10"])
60
+ s.add_dependency(%q<rake>, ["~> 10.0"])
61
+ s.add_dependency(%q<jeweler>, ["~> 2.0"])
62
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
63
+ s.add_dependency(%q<pry>, [">= 0"])
64
+ s.add_dependency(%q<pry-byebug>, [">= 0"])
77
65
  end
78
66
  else
79
67
  s.add_dependency(%q<json>, ["~> 1.4"])
80
68
  s.add_dependency(%q<simple_uuid>, ["~> 0.2"])
81
- s.add_dependency(%q<eventmachine>, ["~> 1.0"])
82
- s.add_dependency(%q<faye-websocket>, ["~> 0.7"])
83
- s.add_dependency(%q<rack>, ["~> 1.5"])
84
- s.add_dependency(%q<websocket-rack>, ["~> 0.4"])
85
- s.add_dependency(%q<thin>, [">= 0"])
86
- s.add_dependency(%q<debugger>, ["~> 1.5"])
87
- s.add_dependency(%q<flexmock>, ["~> 0.8"])
88
- s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
89
- s.add_dependency(%q<rake>, ["~> 0.9.2.2"])
90
- s.add_dependency(%q<rspec>, ["~> 1.3"])
91
- s.add_dependency(%q<right_develop>, ["~> 3.1"])
92
- s.add_dependency(%q<ruby-debug>, ["~> 0.10"])
69
+ s.add_dependency(%q<rake>, ["~> 10.0"])
70
+ s.add_dependency(%q<jeweler>, ["~> 2.0"])
71
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
72
+ s.add_dependency(%q<pry>, [">= 0"])
73
+ s.add_dependency(%q<pry-byebug>, [">= 0"])
93
74
  end
94
75
  end
95
76
 
metadata CHANGED
@@ -1,245 +1,126 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: stomp_out
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Lee Kirchhoff
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2015-02-03 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- type: :runtime
11
+ date: 2015-02-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: json
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 7
29
- segments:
30
- - 1
31
- - 4
32
- version: "1.4"
33
- prerelease: false
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.4'
36
20
  type: :runtime
37
- name: simple_uuid
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 15
44
- segments:
45
- - 0
46
- - 2
47
- version: "0.2"
48
- prerelease: false
49
- requirement: *id002
50
- - !ruby/object:Gem::Dependency
51
- type: :development
52
- name: eventmachine
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 15
59
- segments:
60
- - 1
61
- - 0
62
- version: "1.0"
63
- prerelease: false
64
- requirement: *id003
65
- - !ruby/object:Gem::Dependency
66
- type: :development
67
- name: faye-websocket
68
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ~>
72
- - !ruby/object:Gem::Version
73
- hash: 5
74
- segments:
75
- - 0
76
- - 7
77
- version: "0.7"
78
21
  prerelease: false
79
- requirement: *id004
80
- - !ruby/object:Gem::Dependency
81
- type: :development
82
- name: rack
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ~>
87
- - !ruby/object:Gem::Version
88
- hash: 5
89
- segments:
90
- - 1
91
- - 5
92
- version: "1.5"
93
- prerelease: false
94
- requirement: *id005
95
- - !ruby/object:Gem::Dependency
96
- type: :development
97
- name: websocket-rack
98
- version_requirements: &id006 !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
101
- - - ~>
102
- - !ruby/object:Gem::Version
103
- hash: 3
104
- segments:
105
- - 0
106
- - 4
107
- version: "0.4"
108
- prerelease: false
109
- requirement: *id006
110
- - !ruby/object:Gem::Dependency
111
- type: :development
112
- name: thin
113
- version_requirements: &id007 !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
120
- - 0
121
- version: "0"
122
- prerelease: false
123
- requirement: *id007
124
- - !ruby/object:Gem::Dependency
125
- type: :development
126
- name: debugger
127
- version_requirements: &id008 !ruby/object:Gem::Requirement
128
- none: false
129
- requirements:
130
- - - ~>
131
- - !ruby/object:Gem::Version
132
- hash: 5
133
- segments:
134
- - 1
135
- - 5
136
- version: "1.5"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: simple_uuid
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ type: :runtime
137
35
  prerelease: false
138
- requirement: *id008
139
- - !ruby/object:Gem::Dependency
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
140
48
  type: :development
141
- name: flexmock
142
- version_requirements: &id009 !ruby/object:Gem::Requirement
143
- none: false
144
- requirements:
145
- - - ~>
146
- - !ruby/object:Gem::Version
147
- hash: 27
148
- segments:
149
- - 0
150
- - 8
151
- version: "0.8"
152
49
  prerelease: false
153
- requirement: *id009
154
- - !ruby/object:Gem::Dependency
155
- type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
156
56
  name: jeweler
157
- version_requirements: &id010 !ruby/object:Gem::Requirement
158
- none: false
159
- requirements:
160
- - - ~>
161
- - !ruby/object:Gem::Version
162
- hash: 49
163
- segments:
164
- - 1
165
- - 8
166
- - 3
167
- version: 1.8.3
168
- prerelease: false
169
- requirement: *id010
170
- - !ruby/object:Gem::Dependency
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
171
62
  type: :development
172
- name: rake
173
- version_requirements: &id011 !ruby/object:Gem::Requirement
174
- none: false
175
- requirements:
176
- - - ~>
177
- - !ruby/object:Gem::Version
178
- hash: 11
179
- segments:
180
- - 0
181
- - 9
182
- - 2
183
- - 2
184
- version: 0.9.2.2
185
63
  prerelease: false
186
- requirement: *id011
187
- - !ruby/object:Gem::Dependency
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: ruby-debug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
188
76
  type: :development
189
- name: rspec
190
- version_requirements: &id012 !ruby/object:Gem::Requirement
191
- none: false
192
- requirements:
193
- - - ~>
194
- - !ruby/object:Gem::Version
195
- hash: 9
196
- segments:
197
- - 1
198
- - 3
199
- version: "1.3"
200
77
  prerelease: false
201
- requirement: *id012
202
- - !ruby/object:Gem::Dependency
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
203
90
  type: :development
204
- name: right_develop
205
- version_requirements: &id013 !ruby/object:Gem::Requirement
206
- none: false
207
- requirements:
208
- - - ~>
209
- - !ruby/object:Gem::Version
210
- hash: 5
211
- segments:
212
- - 3
213
- - 1
214
- version: "3.1"
215
91
  prerelease: false
216
- requirement: *id013
217
- - !ruby/object:Gem::Dependency
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-byebug
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
218
104
  type: :development
219
- name: ruby-debug
220
- version_requirements: &id014 !ruby/object:Gem::Requirement
221
- none: false
222
- requirements:
223
- - - ~>
224
- - !ruby/object:Gem::Version
225
- hash: 31
226
- segments:
227
- - 0
228
- - 10
229
- version: "0.10"
230
105
  prerelease: false
231
- requirement: *id014
232
- description: This implementation of STOMP is aimed at environments where a network connection, such as a WebSocket or TCP socket, is created and then raw data from that connection is passed to/from the STOMP client or server messaging layer provided by this gem.
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: This implementation of STOMP is aimed at environments where a network
112
+ connection, such as a WebSocket or TCP socket, is created and then raw data from
113
+ that connection is passed to/from the STOMP client or server messaging layer provided
114
+ by this gem.
233
115
  email: support@rightscale.com
234
116
  executables: []
235
-
236
117
  extensions: []
237
-
238
- extra_rdoc_files:
118
+ extra_rdoc_files:
239
119
  - LICENSE
240
120
  - README.rdoc
241
- files:
242
- - .travis.yml
121
+ files:
122
+ - ".rspec"
123
+ - ".travis.yml"
243
124
  - CHANGELOG.rdoc
244
125
  - LICENSE
245
126
  - README.rdoc
@@ -257,37 +138,28 @@ files:
257
138
  - lib/stomp_out/server.rb
258
139
  - stomp_out.gemspec
259
140
  homepage: https://github.com/rightscale/stomp_out
260
- licenses:
141
+ licenses:
261
142
  - MIT
143
+ metadata: {}
262
144
  post_install_message:
263
145
  rdoc_options: []
264
-
265
- require_paths:
146
+ require_paths:
266
147
  - lib
267
- required_ruby_version: !ruby/object:Gem::Requirement
268
- none: false
269
- requirements:
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ requirements:
270
150
  - - ">="
271
- - !ruby/object:Gem::Version
272
- hash: 3
273
- segments:
274
- - 0
275
- version: "0"
276
- required_rubygems_version: !ruby/object:Gem::Requirement
277
- none: false
278
- requirements:
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
279
155
  - - ">="
280
- - !ruby/object:Gem::Version
281
- hash: 3
282
- segments:
283
- - 0
284
- version: "0"
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
285
158
  requirements: []
286
-
287
159
  rubyforge_project:
288
- rubygems_version: 1.8.15
160
+ rubygems_version: 2.2.2
289
161
  signing_key:
290
- specification_version: 3
291
- summary: Client and server for STOMP protocol that operate outboard of separately supplied network connection.
162
+ specification_version: 4
163
+ summary: Client and server for STOMP protocol that operate outboard of separately
164
+ supplied network connection.
292
165
  test_files: []
293
-