stomp_out 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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
-