firehose 1.2.13 → 1.2.20
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 +7 -0
- data/.rbenv-version +1 -1
- data/lib/assets/javascripts/firehose/base.js.coffee +4 -1
- data/lib/assets/javascripts/firehose/consumer.js.coffee +25 -1
- data/lib/assets/javascripts/firehose/long_poll.js.coffee +13 -0
- data/lib/assets/javascripts/firehose/web_socket.js.coffee +2 -2
- data/lib/firehose.rb +0 -3
- data/lib/firehose/assets.rb +4 -1
- data/lib/firehose/client/producer.rb +5 -4
- data/lib/firehose/rack/consumer/web_socket.rb +5 -5
- data/lib/firehose/version.rb +2 -2
- data/package.json +2 -2
- data/spec/lib/assets_spec.rb +6 -5
- metadata +62 -120
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6723069a09f7ecb056624cf408070f4376da2096
|
4
|
+
data.tar.gz: ee09bbe10757695dfd662a8252cd1acdfcb55f59
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d2717778ef3c3b3a7f172f3bd124b0bee58291a0597267c6ef820988530abd72800f14814b0b437b288b39f17f0bdc2d7baf0f2118d583181fe535438b1ea887
|
7
|
+
data.tar.gz: d9a9f73db80996bddfa9187b71a8fa21ee9a6186770a34f7ae2fa32dfec8b9ee9b411ef3211c3f8198c8ab805629b1fcf51cae55151ec25badeb674ea2368fbc
|
data/.rbenv-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
2.1.2
|
@@ -22,6 +22,8 @@ class Firehose.Consumer
|
|
22
22
|
this
|
23
23
|
|
24
24
|
connect: (delay=0) =>
|
25
|
+
promise = @_connectPromise()
|
26
|
+
|
25
27
|
@config.connectionVerified = @_upgradeTransport
|
26
28
|
if Firehose.WebSocket.supported()
|
27
29
|
@upgradeTimeout = setTimeout =>
|
@@ -30,7 +32,8 @@ class Firehose.Consumer
|
|
30
32
|
, 500
|
31
33
|
@transport = new Firehose.LongPoll @config
|
32
34
|
@transport.connect delay
|
33
|
-
|
35
|
+
|
36
|
+
promise
|
34
37
|
|
35
38
|
stop: =>
|
36
39
|
if @upgradeTimeout?
|
@@ -44,3 +47,24 @@ class Firehose.Consumer
|
|
44
47
|
ws.sendStartingMessageSequence @transport.getLastMessageSequence()
|
45
48
|
@transport = ws
|
46
49
|
return
|
50
|
+
|
51
|
+
# Return a promise that will succeed/fail depending on whether or not the
|
52
|
+
# initial connection succeeds.
|
53
|
+
_connectPromise: =>
|
54
|
+
deferred = $.Deferred()
|
55
|
+
|
56
|
+
origConnected = @config.connected
|
57
|
+
@config.connected = =>
|
58
|
+
deferred.resolve()
|
59
|
+
if origConnected
|
60
|
+
@config.connected = origConnected
|
61
|
+
origConnected()
|
62
|
+
|
63
|
+
# origDisconnected = @config.disconnected
|
64
|
+
# @config.disconnected = =>
|
65
|
+
# deferred.reject()
|
66
|
+
# if origDisconnected
|
67
|
+
# @config.disconnected = origDisconnected
|
68
|
+
# origDisconnected()
|
69
|
+
|
70
|
+
deferred.promise()
|
@@ -119,16 +119,29 @@ if $?.browser?.msie and parseInt($.browser.version, 10) in [8, 9]
|
|
119
119
|
xdr.onload = xdr.onerror = xdr.ontimeout = jQuery.noop
|
120
120
|
xdr = undefined
|
121
121
|
complete status, statusText, responses, responseHeaders
|
122
|
+
|
122
123
|
xdr = new XDomainRequest()
|
124
|
+
|
123
125
|
xdr.open s.type, s.url
|
126
|
+
|
124
127
|
xdr.onload = ->
|
125
128
|
headers = "Content-Type: #{xdr.contentType}"
|
126
129
|
callback 200, "OK", {text: xdr.responseText}, headers
|
130
|
+
|
127
131
|
xdr.onerror = -> callback 404, "Not Found"
|
132
|
+
|
133
|
+
# This is critical for long poll to work in IE9.
|
134
|
+
# Without it, the initial request will work but
|
135
|
+
# subsequent requests will fail silently.
|
136
|
+
# http://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified?forum=iewebdevelopment
|
137
|
+
xdr.onprogress = -> {}
|
138
|
+
|
128
139
|
if s.xdrTimeout?
|
129
140
|
xdr.ontimeout = -> callback 0, "timeout"
|
130
141
|
xdr.timeout = s.xdrTimeout
|
142
|
+
|
131
143
|
xdr.send (s.hasContent and s.data) or null
|
144
|
+
|
132
145
|
abort: ->
|
133
146
|
if xdr?
|
134
147
|
xdr.onerror = jQuery.noop()
|
@@ -5,7 +5,7 @@ class Firehose.WebSocket extends Firehose.Transport
|
|
5
5
|
name: -> 'WebSocket'
|
6
6
|
|
7
7
|
@ieSupported:-> (document.documentMode || 10) > 9
|
8
|
-
@supported :-> window.WebSocket? # Check if WebSocket is an object in the window.
|
8
|
+
@supported :-> (if module?.exports? then global else window).WebSocket? # Check if WebSocket is an object in the window.
|
9
9
|
|
10
10
|
constructor: (args) ->
|
11
11
|
super args
|
@@ -17,7 +17,7 @@ class Firehose.WebSocket extends Firehose.Transport
|
|
17
17
|
# Run this is a try/catch block because IE10 inside of a .NET control
|
18
18
|
# complains about security zones.
|
19
19
|
try
|
20
|
-
@socket = new window.WebSocket "#{@_protocol()}:#{@config.uri}?#{$.param @config.params}"
|
20
|
+
@socket = new (if module?.exports? then global else window).WebSocket "#{@_protocol()}:#{@config.uri}?#{$.param @config.params}"
|
21
21
|
@socket.onopen = @_open
|
22
22
|
@socket.onclose = @_close
|
23
23
|
@socket.onerror = @_error
|
data/lib/firehose.rb
CHANGED
@@ -17,6 +17,3 @@ module Firehose
|
|
17
17
|
# Default URI for the Firehose server. Consider the port "well-known" and bindable from other apps.
|
18
18
|
URI = URI.parse("//0.0.0.0:7474").freeze
|
19
19
|
end
|
20
|
-
|
21
|
-
# Detect if Sprockets is loaded. If it is, lets configure Firehose to use it!
|
22
|
-
Firehose::Assets::Sprockets.auto_detect
|
data/lib/firehose/assets.rb
CHANGED
@@ -36,7 +36,7 @@ module Firehose
|
|
36
36
|
::Sprockets::Manifest.new(environment, directory)
|
37
37
|
end
|
38
38
|
|
39
|
-
# Try to automatically configure Sprockets if
|
39
|
+
# Try to automatically configure Sprockets if it's detected in the project.
|
40
40
|
def self.auto_detect
|
41
41
|
if defined? ::Sprockets and ::Sprockets.respond_to? :append_path
|
42
42
|
Firehose::Assets::Sprockets.configure ::Sprockets
|
@@ -51,3 +51,6 @@ module Firehose
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
# Detect if Sprockets is loaded. If it is, lets configure Firehose to use it!
|
56
|
+
Firehose::Assets::Sprockets.auto_detect
|
@@ -9,7 +9,7 @@ module Firehose
|
|
9
9
|
# Exception gets raised when a 202 is _not_ received from the server after a message is published.
|
10
10
|
PublishError = Class.new(RuntimeError)
|
11
11
|
TimeoutError = Class.new(Faraday::Error::TimeoutError)
|
12
|
-
|
12
|
+
DEFAULT_TIMEOUT = 1 # How many seconds should we wait for a publish to take?
|
13
13
|
|
14
14
|
# A DSL for publishing requests. This doesn't so much, but lets us call
|
15
15
|
# Firehose::Client::Producer::Http#publish('message').to('channel'). Slick eh? If you don't like it,
|
@@ -26,11 +26,12 @@ module Firehose
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# URI for the Firehose server. This URI does not include the path of the channel.
|
29
|
-
attr_reader :uri
|
29
|
+
attr_reader :uri, :timeout
|
30
30
|
|
31
|
-
def initialize(uri = Firehose::URI)
|
31
|
+
def initialize(uri = Firehose::URI, timeout=DEFAULT_TIMEOUT)
|
32
32
|
@uri = ::URI.parse(uri.to_s)
|
33
33
|
@uri.scheme ||= 'http'
|
34
|
+
@timeout = timeout
|
34
35
|
end
|
35
36
|
|
36
37
|
# A DSL for publishing messages.
|
@@ -41,7 +42,7 @@ module Firehose
|
|
41
42
|
# Publish the message via HTTP.
|
42
43
|
def put(message, channel, opts, &block)
|
43
44
|
ttl = opts[:ttl]
|
44
|
-
timeout = opts[:timeout] ||
|
45
|
+
timeout = opts[:timeout] || @timeout || DEFAULT_TIMEOUT
|
45
46
|
|
46
47
|
response = conn.put do |req|
|
47
48
|
req.options[:timeout] = timeout
|
@@ -32,7 +32,7 @@ module Firehose
|
|
32
32
|
end
|
33
33
|
|
34
34
|
# Subscribe the client to the channel on the server. Asks for
|
35
|
-
# the last sequence for clients that reconnect.
|
35
|
+
# the last sequence for clients that reconnect.
|
36
36
|
def subscribe(last_sequence)
|
37
37
|
@subscribed = true
|
38
38
|
@channel = Server::Channel.new @req.path
|
@@ -62,7 +62,7 @@ module Firehose
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
# Log a message that the client has connected.
|
65
|
+
# Log a message that the client has connected.
|
66
66
|
def open(event)
|
67
67
|
Firehose.logger.debug "WebSocket subscribed to `#{@req.path}`. Waiting for message_sequence..."
|
68
68
|
end
|
@@ -80,10 +80,10 @@ module Firehose
|
|
80
80
|
# Log errors if a socket fails. `close` will fire after this to clean up any
|
81
81
|
# remaining connectons.
|
82
82
|
def error(event)
|
83
|
-
Firehose.logger.error "WS connection `#{@req.path}` error. Message: `#{event.message.inspect}
|
83
|
+
Firehose.logger.error "WS connection `#{@req.path}` error. Message: `#{event.message.inspect}`"
|
84
84
|
end
|
85
85
|
|
86
|
-
# Wrap a message in a sequence so that the client can record this and give us
|
86
|
+
# Wrap a message in a sequence so that the client can record this and give us
|
87
87
|
# the sequence when it reconnects.
|
88
88
|
def self.wrap_frame(message, last_sequence)
|
89
89
|
JSON.generate :message => message, :last_sequence => last_sequence
|
@@ -92,4 +92,4 @@ module Firehose
|
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
95
|
-
end
|
95
|
+
end
|
data/lib/firehose/version.rb
CHANGED
data/package.json
CHANGED
data/spec/lib/assets_spec.rb
CHANGED
@@ -21,14 +21,15 @@ describe Firehose::Assets do
|
|
21
21
|
|
22
22
|
describe "Sprockets.javascript" do
|
23
23
|
let(:js_spot_checks) do
|
24
|
-
|
25
|
-
Firehose.Transport
|
26
|
-
Firehose.version
|
27
|
-
|
24
|
+
[
|
25
|
+
"Firehose.Transport",
|
26
|
+
"Firehose.version",
|
27
|
+
"global.Firehose || (global.Firehose = {})",
|
28
|
+
"window.Firehose || (window.Firehose = {})"
|
28
29
|
]
|
29
30
|
end
|
30
31
|
it "should compile javascript" do
|
31
32
|
Firehose::Assets::Sprockets.javascript.should include(*js_spot_checks)
|
32
33
|
end
|
33
34
|
end
|
34
|
-
end
|
35
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firehose
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.20
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brad Gessler
|
@@ -12,406 +11,356 @@ authors:
|
|
12
11
|
autorequire:
|
13
12
|
bindir: bin
|
14
13
|
cert_chain: []
|
15
|
-
date: 2014-
|
14
|
+
date: 2014-09-24 00:00:00.000000000 Z
|
16
15
|
dependencies:
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: eventmachine
|
19
18
|
requirement: !ruby/object:Gem::Requirement
|
20
|
-
none: false
|
21
19
|
requirements:
|
22
|
-
- -
|
20
|
+
- - ">="
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: 1.0.0
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 1.0.0
|
33
30
|
- !ruby/object:Gem::Dependency
|
34
31
|
name: em-hiredis
|
35
32
|
requirement: !ruby/object:Gem::Requirement
|
36
|
-
none: false
|
37
33
|
requirements:
|
38
|
-
- -
|
34
|
+
- - ">="
|
39
35
|
- !ruby/object:Gem::Version
|
40
36
|
version: 0.2.0
|
41
37
|
type: :runtime
|
42
38
|
prerelease: false
|
43
39
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
40
|
requirements:
|
46
|
-
- -
|
41
|
+
- - ">="
|
47
42
|
- !ruby/object:Gem::Version
|
48
43
|
version: 0.2.0
|
49
44
|
- !ruby/object:Gem::Dependency
|
50
45
|
name: thor
|
51
46
|
requirement: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
47
|
requirements:
|
54
|
-
- -
|
48
|
+
- - ">="
|
55
49
|
- !ruby/object:Gem::Version
|
56
50
|
version: '0'
|
57
51
|
type: :runtime
|
58
52
|
prerelease: false
|
59
53
|
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
none: false
|
61
54
|
requirements:
|
62
|
-
- -
|
55
|
+
- - ">="
|
63
56
|
- !ruby/object:Gem::Version
|
64
57
|
version: '0'
|
65
58
|
- !ruby/object:Gem::Dependency
|
66
59
|
name: faraday
|
67
60
|
requirement: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
61
|
requirements:
|
70
|
-
- -
|
62
|
+
- - ">="
|
71
63
|
- !ruby/object:Gem::Version
|
72
64
|
version: '0'
|
73
65
|
type: :runtime
|
74
66
|
prerelease: false
|
75
67
|
version_requirements: !ruby/object:Gem::Requirement
|
76
|
-
none: false
|
77
68
|
requirements:
|
78
|
-
- -
|
69
|
+
- - ">="
|
79
70
|
- !ruby/object:Gem::Version
|
80
71
|
version: '0'
|
81
72
|
- !ruby/object:Gem::Dependency
|
82
73
|
name: faye-websocket
|
83
74
|
requirement: !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
75
|
requirements:
|
86
|
-
- -
|
76
|
+
- - ">="
|
87
77
|
- !ruby/object:Gem::Version
|
88
78
|
version: '0'
|
89
79
|
type: :runtime
|
90
80
|
prerelease: false
|
91
81
|
version_requirements: !ruby/object:Gem::Requirement
|
92
|
-
none: false
|
93
82
|
requirements:
|
94
|
-
- -
|
83
|
+
- - ">="
|
95
84
|
- !ruby/object:Gem::Version
|
96
85
|
version: '0'
|
97
86
|
- !ruby/object:Gem::Dependency
|
98
87
|
name: em-http-request
|
99
88
|
requirement: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
89
|
requirements:
|
102
|
-
- -
|
90
|
+
- - ">="
|
103
91
|
- !ruby/object:Gem::Version
|
104
92
|
version: 1.0.0
|
105
93
|
type: :runtime
|
106
94
|
prerelease: false
|
107
95
|
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
96
|
requirements:
|
110
|
-
- -
|
97
|
+
- - ">="
|
111
98
|
- !ruby/object:Gem::Version
|
112
99
|
version: 1.0.0
|
113
100
|
- !ruby/object:Gem::Dependency
|
114
101
|
name: json
|
115
102
|
requirement: !ruby/object:Gem::Requirement
|
116
|
-
none: false
|
117
103
|
requirements:
|
118
|
-
- -
|
104
|
+
- - ">="
|
119
105
|
- !ruby/object:Gem::Version
|
120
106
|
version: '0'
|
121
107
|
type: :runtime
|
122
108
|
prerelease: false
|
123
109
|
version_requirements: !ruby/object:Gem::Requirement
|
124
|
-
none: false
|
125
110
|
requirements:
|
126
|
-
- -
|
111
|
+
- - ">="
|
127
112
|
- !ruby/object:Gem::Version
|
128
113
|
version: '0'
|
129
114
|
- !ruby/object:Gem::Dependency
|
130
115
|
name: rack
|
131
116
|
requirement: !ruby/object:Gem::Requirement
|
132
|
-
none: false
|
133
117
|
requirements:
|
134
|
-
- -
|
118
|
+
- - ">="
|
135
119
|
- !ruby/object:Gem::Version
|
136
120
|
version: '0'
|
137
121
|
type: :runtime
|
138
122
|
prerelease: false
|
139
123
|
version_requirements: !ruby/object:Gem::Requirement
|
140
|
-
none: false
|
141
124
|
requirements:
|
142
|
-
- -
|
125
|
+
- - ">="
|
143
126
|
- !ruby/object:Gem::Version
|
144
127
|
version: '0'
|
145
128
|
- !ruby/object:Gem::Dependency
|
146
129
|
name: rspec
|
147
130
|
requirement: !ruby/object:Gem::Requirement
|
148
|
-
none: false
|
149
131
|
requirements:
|
150
|
-
- - ~>
|
132
|
+
- - "~>"
|
151
133
|
- !ruby/object:Gem::Version
|
152
134
|
version: '2'
|
153
135
|
type: :development
|
154
136
|
prerelease: false
|
155
137
|
version_requirements: !ruby/object:Gem::Requirement
|
156
|
-
none: false
|
157
138
|
requirements:
|
158
|
-
- - ~>
|
139
|
+
- - "~>"
|
159
140
|
- !ruby/object:Gem::Version
|
160
141
|
version: '2'
|
161
142
|
- !ruby/object:Gem::Dependency
|
162
143
|
name: webmock
|
163
144
|
requirement: !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
145
|
requirements:
|
166
|
-
- -
|
146
|
+
- - ">="
|
167
147
|
- !ruby/object:Gem::Version
|
168
148
|
version: '0'
|
169
149
|
type: :development
|
170
150
|
prerelease: false
|
171
151
|
version_requirements: !ruby/object:Gem::Requirement
|
172
|
-
none: false
|
173
152
|
requirements:
|
174
|
-
- -
|
153
|
+
- - ">="
|
175
154
|
- !ruby/object:Gem::Version
|
176
155
|
version: '0'
|
177
156
|
- !ruby/object:Gem::Dependency
|
178
157
|
name: coffee-script
|
179
158
|
requirement: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
159
|
requirements:
|
182
|
-
- -
|
160
|
+
- - ">="
|
183
161
|
- !ruby/object:Gem::Version
|
184
162
|
version: '0'
|
185
163
|
type: :development
|
186
164
|
prerelease: false
|
187
165
|
version_requirements: !ruby/object:Gem::Requirement
|
188
|
-
none: false
|
189
166
|
requirements:
|
190
|
-
- -
|
167
|
+
- - ">="
|
191
168
|
- !ruby/object:Gem::Version
|
192
169
|
version: '0'
|
193
170
|
- !ruby/object:Gem::Dependency
|
194
171
|
name: guard-rspec
|
195
172
|
requirement: !ruby/object:Gem::Requirement
|
196
|
-
none: false
|
197
173
|
requirements:
|
198
|
-
- -
|
174
|
+
- - ">="
|
199
175
|
- !ruby/object:Gem::Version
|
200
176
|
version: '0'
|
201
177
|
type: :development
|
202
178
|
prerelease: false
|
203
179
|
version_requirements: !ruby/object:Gem::Requirement
|
204
|
-
none: false
|
205
180
|
requirements:
|
206
|
-
- -
|
181
|
+
- - ">="
|
207
182
|
- !ruby/object:Gem::Version
|
208
183
|
version: '0'
|
209
184
|
- !ruby/object:Gem::Dependency
|
210
185
|
name: guard-bundler
|
211
186
|
requirement: !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
187
|
requirements:
|
214
|
-
- -
|
188
|
+
- - ">="
|
215
189
|
- !ruby/object:Gem::Version
|
216
190
|
version: '0'
|
217
191
|
type: :development
|
218
192
|
prerelease: false
|
219
193
|
version_requirements: !ruby/object:Gem::Requirement
|
220
|
-
none: false
|
221
194
|
requirements:
|
222
|
-
- -
|
195
|
+
- - ">="
|
223
196
|
- !ruby/object:Gem::Version
|
224
197
|
version: '0'
|
225
198
|
- !ruby/object:Gem::Dependency
|
226
199
|
name: guard-coffeescript
|
227
200
|
requirement: !ruby/object:Gem::Requirement
|
228
|
-
none: false
|
229
201
|
requirements:
|
230
|
-
- -
|
202
|
+
- - ">="
|
231
203
|
- !ruby/object:Gem::Version
|
232
204
|
version: '0'
|
233
205
|
type: :development
|
234
206
|
prerelease: false
|
235
207
|
version_requirements: !ruby/object:Gem::Requirement
|
236
|
-
none: false
|
237
208
|
requirements:
|
238
|
-
- -
|
209
|
+
- - ">="
|
239
210
|
- !ruby/object:Gem::Version
|
240
211
|
version: '0'
|
241
212
|
- !ruby/object:Gem::Dependency
|
242
213
|
name: guard-copy
|
243
214
|
requirement: !ruby/object:Gem::Requirement
|
244
|
-
none: false
|
245
215
|
requirements:
|
246
|
-
- -
|
216
|
+
- - ">="
|
247
217
|
- !ruby/object:Gem::Version
|
248
218
|
version: '0'
|
249
219
|
type: :development
|
250
220
|
prerelease: false
|
251
221
|
version_requirements: !ruby/object:Gem::Requirement
|
252
|
-
none: false
|
253
222
|
requirements:
|
254
|
-
- -
|
223
|
+
- - ">="
|
255
224
|
- !ruby/object:Gem::Version
|
256
225
|
version: '0'
|
257
226
|
- !ruby/object:Gem::Dependency
|
258
227
|
name: rainbows
|
259
228
|
requirement: !ruby/object:Gem::Requirement
|
260
|
-
none: false
|
261
229
|
requirements:
|
262
|
-
- - ~>
|
230
|
+
- - "~>"
|
263
231
|
- !ruby/object:Gem::Version
|
264
232
|
version: 4.4.3
|
265
233
|
type: :development
|
266
234
|
prerelease: false
|
267
235
|
version_requirements: !ruby/object:Gem::Requirement
|
268
|
-
none: false
|
269
236
|
requirements:
|
270
|
-
- - ~>
|
237
|
+
- - "~>"
|
271
238
|
- !ruby/object:Gem::Version
|
272
239
|
version: 4.4.3
|
273
240
|
- !ruby/object:Gem::Dependency
|
274
241
|
name: thin
|
275
242
|
requirement: !ruby/object:Gem::Requirement
|
276
|
-
none: false
|
277
243
|
requirements:
|
278
|
-
- -
|
244
|
+
- - ">="
|
279
245
|
- !ruby/object:Gem::Version
|
280
246
|
version: '0'
|
281
247
|
type: :development
|
282
248
|
prerelease: false
|
283
249
|
version_requirements: !ruby/object:Gem::Requirement
|
284
|
-
none: false
|
285
250
|
requirements:
|
286
|
-
- -
|
251
|
+
- - ">="
|
287
252
|
- !ruby/object:Gem::Version
|
288
253
|
version: '0'
|
289
254
|
- !ruby/object:Gem::Dependency
|
290
255
|
name: rack-test
|
291
256
|
requirement: !ruby/object:Gem::Requirement
|
292
|
-
none: false
|
293
257
|
requirements:
|
294
|
-
- -
|
258
|
+
- - ">="
|
295
259
|
- !ruby/object:Gem::Version
|
296
260
|
version: '0'
|
297
261
|
type: :development
|
298
262
|
prerelease: false
|
299
263
|
version_requirements: !ruby/object:Gem::Requirement
|
300
|
-
none: false
|
301
264
|
requirements:
|
302
|
-
- -
|
265
|
+
- - ">="
|
303
266
|
- !ruby/object:Gem::Version
|
304
267
|
version: '0'
|
305
268
|
- !ruby/object:Gem::Dependency
|
306
269
|
name: async_rack_test
|
307
270
|
requirement: !ruby/object:Gem::Requirement
|
308
|
-
none: false
|
309
271
|
requirements:
|
310
|
-
- -
|
272
|
+
- - ">="
|
311
273
|
- !ruby/object:Gem::Version
|
312
274
|
version: '0'
|
313
275
|
type: :development
|
314
276
|
prerelease: false
|
315
277
|
version_requirements: !ruby/object:Gem::Requirement
|
316
|
-
none: false
|
317
278
|
requirements:
|
318
|
-
- -
|
279
|
+
- - ">="
|
319
280
|
- !ruby/object:Gem::Version
|
320
281
|
version: '0'
|
321
282
|
- !ruby/object:Gem::Dependency
|
322
283
|
name: foreman
|
323
284
|
requirement: !ruby/object:Gem::Requirement
|
324
|
-
none: false
|
325
285
|
requirements:
|
326
|
-
- -
|
286
|
+
- - ">="
|
327
287
|
- !ruby/object:Gem::Version
|
328
288
|
version: '0'
|
329
289
|
type: :development
|
330
290
|
prerelease: false
|
331
291
|
version_requirements: !ruby/object:Gem::Requirement
|
332
|
-
none: false
|
333
292
|
requirements:
|
334
|
-
- -
|
293
|
+
- - ">="
|
335
294
|
- !ruby/object:Gem::Version
|
336
295
|
version: '0'
|
337
296
|
- !ruby/object:Gem::Dependency
|
338
297
|
name: sprockets
|
339
298
|
requirement: !ruby/object:Gem::Requirement
|
340
|
-
none: false
|
341
299
|
requirements:
|
342
|
-
- -
|
300
|
+
- - ">="
|
343
301
|
- !ruby/object:Gem::Version
|
344
302
|
version: '0'
|
345
303
|
type: :development
|
346
304
|
prerelease: false
|
347
305
|
version_requirements: !ruby/object:Gem::Requirement
|
348
|
-
none: false
|
349
306
|
requirements:
|
350
|
-
- -
|
307
|
+
- - ">="
|
351
308
|
- !ruby/object:Gem::Version
|
352
309
|
version: '0'
|
353
310
|
- !ruby/object:Gem::Dependency
|
354
311
|
name: rake
|
355
312
|
requirement: !ruby/object:Gem::Requirement
|
356
|
-
none: false
|
357
313
|
requirements:
|
358
|
-
- -
|
314
|
+
- - ">="
|
359
315
|
- !ruby/object:Gem::Version
|
360
316
|
version: '0'
|
361
317
|
type: :development
|
362
318
|
prerelease: false
|
363
319
|
version_requirements: !ruby/object:Gem::Requirement
|
364
|
-
none: false
|
365
320
|
requirements:
|
366
|
-
- -
|
321
|
+
- - ">="
|
367
322
|
- !ruby/object:Gem::Version
|
368
323
|
version: '0'
|
369
324
|
- !ruby/object:Gem::Dependency
|
370
325
|
name: evergreen
|
371
326
|
requirement: !ruby/object:Gem::Requirement
|
372
|
-
none: false
|
373
327
|
requirements:
|
374
|
-
- -
|
328
|
+
- - ">="
|
375
329
|
- !ruby/object:Gem::Version
|
376
330
|
version: '0'
|
377
331
|
type: :development
|
378
332
|
prerelease: false
|
379
333
|
version_requirements: !ruby/object:Gem::Requirement
|
380
|
-
none: false
|
381
334
|
requirements:
|
382
|
-
- -
|
335
|
+
- - ">="
|
383
336
|
- !ruby/object:Gem::Version
|
384
337
|
version: '0'
|
385
338
|
- !ruby/object:Gem::Dependency
|
386
339
|
name: capybara-webkit
|
387
340
|
requirement: !ruby/object:Gem::Requirement
|
388
|
-
none: false
|
389
341
|
requirements:
|
390
|
-
- -
|
342
|
+
- - ">="
|
391
343
|
- !ruby/object:Gem::Version
|
392
344
|
version: '0'
|
393
345
|
type: :development
|
394
346
|
prerelease: false
|
395
347
|
version_requirements: !ruby/object:Gem::Requirement
|
396
|
-
none: false
|
397
348
|
requirements:
|
398
|
-
- -
|
349
|
+
- - ">="
|
399
350
|
- !ruby/object:Gem::Version
|
400
351
|
version: '0'
|
401
352
|
- !ruby/object:Gem::Dependency
|
402
353
|
name: therubyracer
|
403
354
|
requirement: !ruby/object:Gem::Requirement
|
404
|
-
none: false
|
405
355
|
requirements:
|
406
|
-
- -
|
356
|
+
- - ">="
|
407
357
|
- !ruby/object:Gem::Version
|
408
358
|
version: '0'
|
409
359
|
type: :development
|
410
360
|
prerelease: false
|
411
361
|
version_requirements: !ruby/object:Gem::Requirement
|
412
|
-
none: false
|
413
362
|
requirements:
|
414
|
-
- -
|
363
|
+
- - ">="
|
415
364
|
- !ruby/object:Gem::Version
|
416
365
|
version: '0'
|
417
366
|
description: Firehose is a realtime web application toolkit for building realtime
|
@@ -426,11 +375,11 @@ executables:
|
|
426
375
|
extensions: []
|
427
376
|
extra_rdoc_files: []
|
428
377
|
files:
|
429
|
-
- .env.sample
|
430
|
-
- .gitignore
|
431
|
-
- .rbenv-version
|
432
|
-
- .rspec
|
433
|
-
- .travis.yml
|
378
|
+
- ".env.sample"
|
379
|
+
- ".gitignore"
|
380
|
+
- ".rbenv-version"
|
381
|
+
- ".rspec"
|
382
|
+
- ".travis.yml"
|
434
383
|
- Gemfile
|
435
384
|
- Guardfile
|
436
385
|
- LICENSE.txt
|
@@ -500,33 +449,26 @@ files:
|
|
500
449
|
homepage: http://firehose.io/
|
501
450
|
licenses:
|
502
451
|
- MIT
|
452
|
+
metadata: {}
|
503
453
|
post_install_message:
|
504
454
|
rdoc_options: []
|
505
455
|
require_paths:
|
506
456
|
- lib
|
507
457
|
required_ruby_version: !ruby/object:Gem::Requirement
|
508
|
-
none: false
|
509
458
|
requirements:
|
510
|
-
- -
|
459
|
+
- - ">="
|
511
460
|
- !ruby/object:Gem::Version
|
512
461
|
version: '0'
|
513
|
-
segments:
|
514
|
-
- 0
|
515
|
-
hash: -2325790275030245619
|
516
462
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
517
|
-
none: false
|
518
463
|
requirements:
|
519
|
-
- -
|
464
|
+
- - ">="
|
520
465
|
- !ruby/object:Gem::Version
|
521
466
|
version: '0'
|
522
|
-
segments:
|
523
|
-
- 0
|
524
|
-
hash: -2325790275030245619
|
525
467
|
requirements: []
|
526
468
|
rubyforge_project: firehose
|
527
|
-
rubygems_version:
|
469
|
+
rubygems_version: 2.2.2
|
528
470
|
signing_key:
|
529
|
-
specification_version:
|
471
|
+
specification_version: 4
|
530
472
|
summary: Build realtime Ruby web applications
|
531
473
|
test_files:
|
532
474
|
- spec/integrations/integration_test_helper.rb
|