firehose 1.2.3 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -70,8 +70,6 @@ Firehose doesn't just stop at curl; it has a full-featured JavaScript client tha
70
70
  Still have the server running? Copy and paste the code below into Firebug or the WebKit console.
71
71
 
72
72
  ```javascript
73
- // You'll need to set for WS to work in IE. The value here is the default.
74
- window.WEB_SOCKET_SWF_LOCATION = '/assets/firehose/WebSocketMain.swf';
75
73
 
76
74
  new Firehose.Consumer({
77
75
  message: function(msg){
@@ -134,15 +132,7 @@ my_sprockets_env = Sprockets::Environment.new
134
132
  Firehose::Assets::Sprockets.configure my_sprockets_env
135
133
  ```
136
134
 
137
- 3. Create a firehose config file for setting constants. A good place for this file in a Rails app is `app/assets/javascripts/lib/firehose_config.js.erb`. This gives you a way to configure Flash Web Sockets needed to make some older browser such as IE<10 and Opera<12 support web sockets. Usually this config file will just be:
138
-
139
- ```erb
140
- window.WEB_SOCKET_SWF_LOCATION = '<%= asset_path('firehose/WebSocketMain.swf') %>'
141
- ```
142
-
143
- The options you can set in this file come directly from https://github.com/gimite/web-socket-js (which is the flash web socket implementation used by Firehose).
144
-
145
- 4) Require your config file and the firehose gem. This would look something like this:
135
+ 3. Require your config file and the firehose gem. This would look something like this:
146
136
 
147
137
  ```ruby
148
138
  #= require some/other/js/file
@@ -172,22 +162,6 @@ if exceptional_key = ENV['EXCEPTIONAL_KEY']
172
162
  end
173
163
  ```
174
164
 
175
- # Flash Policy File
176
-
177
- This works out of the box in development if you use the included Procfile with Foreman. However, that solution doesn't work well with a lot production setups, so it is disabled in other environments.
178
-
179
- [Here is a hack to server your policy file via Nginx](http://blog.vokle.com/index.php/2009/06/10/dealing-with-adobe-and-serving-socket-policy-servers-via-nginx-and-10-lines-of-code/)
180
-
181
- You can also add a similar hack to HAProxy to serve your policy file.
182
-
183
- ```sh
184
- listen swf_policy_requests 0.0.0.0:843
185
- # Be careful here. This needs to be an absolute path.
186
- errorfile 400 /path/to/my/crossdomain.xml
187
- ```
188
-
189
- In either case, you'll want to be careful about using these hacks on ports that you are also using for genuine HTTP traffic.
190
-
191
165
  # Deployment
192
166
 
193
167
  The recommended method of deploying firehose is to deploy it separately from your main app.
@@ -206,4 +180,4 @@ Of course, you could use `exceptional` instead of `airbrake` and `thin` instead
206
180
 
207
181
  2. Set up `config/deploy.rb` to your liking. You can follow most directions for using Capistrano and Foreman to deploy Rack apps, such as https://gist.github.com/1027117
208
182
 
209
- 3. Set up `config/rainbows.rb` (if you are using Rainbows!). The gem includes an example to get you started.
183
+ 3. Set up `config/rainbows.rb` (if you are using Rainbows!). The gem includes an example to get you started.
@@ -4,10 +4,8 @@ KEEPALIVE_PING_TIMEOUT = 20000
4
4
  class Firehose.WebSocket extends Firehose.Transport
5
5
  name: -> 'WebSocket'
6
6
 
7
+ # Check if WebSocket is an object in the window.
7
8
  @supported: ->
8
- # Compatibility reference: http://caniuse.com/websockets
9
- # We don't need to explicitly check for Flash web socket or MozWebSocket
10
- # because web_socket.js has already handled that.
11
9
  window.WebSocket?
12
10
 
13
11
  constructor: (args) ->
@@ -17,11 +15,16 @@ class Firehose.WebSocket extends Firehose.Transport
17
15
  @config.webSocket.connectionVerified = @config.connectionVerified
18
16
 
19
17
  _request: =>
20
- @socket = new window.WebSocket "ws:#{@config.uri}?#{$.param @config.params}"
21
- @socket.onopen = @_open
22
- @socket.onclose = @_close
23
- @socket.onerror = @_error
24
- @socket.onmessage = @_lookForInitialPong
18
+ # Run this is a try/catch block because IE10 inside of a .NET control
19
+ # complains about security zones.
20
+ try
21
+ @socket = new window.WebSocket "ws:#{@config.uri}?#{$.param @config.params}"
22
+ @socket.onopen = @_open
23
+ @socket.onclose = @_close
24
+ @socket.onerror = @_error
25
+ @socket.onmessage = @_lookForInitialPong
26
+ catch err
27
+ console?.log(err)
25
28
 
26
29
  _open: =>
27
30
  sendPing @socket
@@ -1,3 +1,5 @@
1
+ require 'em-hiredis'
2
+
1
3
  module Firehose
2
4
  module Rack
3
5
  # Allows the Firehose client to periodically "ping" the server
@@ -1,4 +1,4 @@
1
1
  module Firehose
2
- VERSION = "1.2.3"
3
- CODENAME = "Steampunk Boogaloo"
2
+ VERSION = "1.2.4"
3
+ CODENAME = "Dot Net Is Tubular"
4
4
  end
@@ -82,7 +82,9 @@ shared_examples_for 'Firehose::Rack::App' do
82
82
  ws = nil
83
83
  end
84
84
 
85
- ws.onerror { |e| raise 'ws failed' + "\n" + e.inspect }
85
+ ws.onerror = lambda do |event|
86
+ raise 'ws failed' + "\n" + event.inspect
87
+ end
86
88
  end
87
89
 
88
90
  # Great, we have all the pieces in order, lets run this thing in the reactor.
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firehose
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Brad Gessler
@@ -11,11 +12,12 @@ authors:
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2013-04-28 00:00:00.000000000 Z
15
+ date: 2013-05-24 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: eventmachine
18
19
  requirement: !ruby/object:Gem::Requirement
20
+ none: false
19
21
  requirements:
20
22
  - - ! '>='
21
23
  - !ruby/object:Gem::Version
@@ -23,6 +25,7 @@ dependencies:
23
25
  type: :runtime
24
26
  prerelease: false
25
27
  version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
26
29
  requirements:
27
30
  - - ! '>='
28
31
  - !ruby/object:Gem::Version
@@ -30,6 +33,7 @@ dependencies:
30
33
  - !ruby/object:Gem::Dependency
31
34
  name: em-hiredis
32
35
  requirement: !ruby/object:Gem::Requirement
36
+ none: false
33
37
  requirements:
34
38
  - - ! '>='
35
39
  - !ruby/object:Gem::Version
@@ -37,6 +41,7 @@ dependencies:
37
41
  type: :runtime
38
42
  prerelease: false
39
43
  version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
40
45
  requirements:
41
46
  - - ! '>='
42
47
  - !ruby/object:Gem::Version
@@ -44,6 +49,7 @@ dependencies:
44
49
  - !ruby/object:Gem::Dependency
45
50
  name: thor
46
51
  requirement: !ruby/object:Gem::Requirement
52
+ none: false
47
53
  requirements:
48
54
  - - ! '>='
49
55
  - !ruby/object:Gem::Version
@@ -51,6 +57,7 @@ dependencies:
51
57
  type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
54
61
  requirements:
55
62
  - - ! '>='
56
63
  - !ruby/object:Gem::Version
@@ -58,6 +65,7 @@ dependencies:
58
65
  - !ruby/object:Gem::Dependency
59
66
  name: faraday
60
67
  requirement: !ruby/object:Gem::Requirement
68
+ none: false
61
69
  requirements:
62
70
  - - ! '>='
63
71
  - !ruby/object:Gem::Version
@@ -65,6 +73,7 @@ dependencies:
65
73
  type: :runtime
66
74
  prerelease: false
67
75
  version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
68
77
  requirements:
69
78
  - - ! '>='
70
79
  - !ruby/object:Gem::Version
@@ -72,6 +81,7 @@ dependencies:
72
81
  - !ruby/object:Gem::Dependency
73
82
  name: faye-websocket
74
83
  requirement: !ruby/object:Gem::Requirement
84
+ none: false
75
85
  requirements:
76
86
  - - ! '>='
77
87
  - !ruby/object:Gem::Version
@@ -79,6 +89,7 @@ dependencies:
79
89
  type: :runtime
80
90
  prerelease: false
81
91
  version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
82
93
  requirements:
83
94
  - - ! '>='
84
95
  - !ruby/object:Gem::Version
@@ -86,6 +97,7 @@ dependencies:
86
97
  - !ruby/object:Gem::Dependency
87
98
  name: em-http-request
88
99
  requirement: !ruby/object:Gem::Requirement
100
+ none: false
89
101
  requirements:
90
102
  - - ! '>='
91
103
  - !ruby/object:Gem::Version
@@ -93,6 +105,7 @@ dependencies:
93
105
  type: :runtime
94
106
  prerelease: false
95
107
  version_requirements: !ruby/object:Gem::Requirement
108
+ none: false
96
109
  requirements:
97
110
  - - ! '>='
98
111
  - !ruby/object:Gem::Version
@@ -100,6 +113,7 @@ dependencies:
100
113
  - !ruby/object:Gem::Dependency
101
114
  name: json
102
115
  requirement: !ruby/object:Gem::Requirement
116
+ none: false
103
117
  requirements:
104
118
  - - ! '>='
105
119
  - !ruby/object:Gem::Version
@@ -107,6 +121,7 @@ dependencies:
107
121
  type: :runtime
108
122
  prerelease: false
109
123
  version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
110
125
  requirements:
111
126
  - - ! '>='
112
127
  - !ruby/object:Gem::Version
@@ -114,6 +129,7 @@ dependencies:
114
129
  - !ruby/object:Gem::Dependency
115
130
  name: rspec
116
131
  requirement: !ruby/object:Gem::Requirement
132
+ none: false
117
133
  requirements:
118
134
  - - ! '>='
119
135
  - !ruby/object:Gem::Version
@@ -121,6 +137,7 @@ dependencies:
121
137
  type: :development
122
138
  prerelease: false
123
139
  version_requirements: !ruby/object:Gem::Requirement
140
+ none: false
124
141
  requirements:
125
142
  - - ! '>='
126
143
  - !ruby/object:Gem::Version
@@ -128,6 +145,7 @@ dependencies:
128
145
  - !ruby/object:Gem::Dependency
129
146
  name: webmock
130
147
  requirement: !ruby/object:Gem::Requirement
148
+ none: false
131
149
  requirements:
132
150
  - - ! '>='
133
151
  - !ruby/object:Gem::Version
@@ -135,6 +153,7 @@ dependencies:
135
153
  type: :development
136
154
  prerelease: false
137
155
  version_requirements: !ruby/object:Gem::Requirement
156
+ none: false
138
157
  requirements:
139
158
  - - ! '>='
140
159
  - !ruby/object:Gem::Version
@@ -142,6 +161,7 @@ dependencies:
142
161
  - !ruby/object:Gem::Dependency
143
162
  name: guard-rspec
144
163
  requirement: !ruby/object:Gem::Requirement
164
+ none: false
145
165
  requirements:
146
166
  - - ! '>='
147
167
  - !ruby/object:Gem::Version
@@ -149,6 +169,7 @@ dependencies:
149
169
  type: :development
150
170
  prerelease: false
151
171
  version_requirements: !ruby/object:Gem::Requirement
172
+ none: false
152
173
  requirements:
153
174
  - - ! '>='
154
175
  - !ruby/object:Gem::Version
@@ -156,6 +177,7 @@ dependencies:
156
177
  - !ruby/object:Gem::Dependency
157
178
  name: guard-bundler
158
179
  requirement: !ruby/object:Gem::Requirement
180
+ none: false
159
181
  requirements:
160
182
  - - ! '>='
161
183
  - !ruby/object:Gem::Version
@@ -163,6 +185,7 @@ dependencies:
163
185
  type: :development
164
186
  prerelease: false
165
187
  version_requirements: !ruby/object:Gem::Requirement
188
+ none: false
166
189
  requirements:
167
190
  - - ! '>='
168
191
  - !ruby/object:Gem::Version
@@ -170,6 +193,7 @@ dependencies:
170
193
  - !ruby/object:Gem::Dependency
171
194
  name: guard-coffeescript
172
195
  requirement: !ruby/object:Gem::Requirement
196
+ none: false
173
197
  requirements:
174
198
  - - ! '>='
175
199
  - !ruby/object:Gem::Version
@@ -177,6 +201,7 @@ dependencies:
177
201
  type: :development
178
202
  prerelease: false
179
203
  version_requirements: !ruby/object:Gem::Requirement
204
+ none: false
180
205
  requirements:
181
206
  - - ! '>='
182
207
  - !ruby/object:Gem::Version
@@ -184,6 +209,7 @@ dependencies:
184
209
  - !ruby/object:Gem::Dependency
185
210
  name: rainbows
186
211
  requirement: !ruby/object:Gem::Requirement
212
+ none: false
187
213
  requirements:
188
214
  - - ~>
189
215
  - !ruby/object:Gem::Version
@@ -191,6 +217,7 @@ dependencies:
191
217
  type: :development
192
218
  prerelease: false
193
219
  version_requirements: !ruby/object:Gem::Requirement
220
+ none: false
194
221
  requirements:
195
222
  - - ~>
196
223
  - !ruby/object:Gem::Version
@@ -198,6 +225,7 @@ dependencies:
198
225
  - !ruby/object:Gem::Dependency
199
226
  name: thin
200
227
  requirement: !ruby/object:Gem::Requirement
228
+ none: false
201
229
  requirements:
202
230
  - - ! '>='
203
231
  - !ruby/object:Gem::Version
@@ -205,6 +233,7 @@ dependencies:
205
233
  type: :development
206
234
  prerelease: false
207
235
  version_requirements: !ruby/object:Gem::Requirement
236
+ none: false
208
237
  requirements:
209
238
  - - ! '>='
210
239
  - !ruby/object:Gem::Version
@@ -212,6 +241,7 @@ dependencies:
212
241
  - !ruby/object:Gem::Dependency
213
242
  name: rack-test
214
243
  requirement: !ruby/object:Gem::Requirement
244
+ none: false
215
245
  requirements:
216
246
  - - ! '>='
217
247
  - !ruby/object:Gem::Version
@@ -219,6 +249,7 @@ dependencies:
219
249
  type: :development
220
250
  prerelease: false
221
251
  version_requirements: !ruby/object:Gem::Requirement
252
+ none: false
222
253
  requirements:
223
254
  - - ! '>='
224
255
  - !ruby/object:Gem::Version
@@ -226,6 +257,7 @@ dependencies:
226
257
  - !ruby/object:Gem::Dependency
227
258
  name: async_rack_test
228
259
  requirement: !ruby/object:Gem::Requirement
260
+ none: false
229
261
  requirements:
230
262
  - - ! '>='
231
263
  - !ruby/object:Gem::Version
@@ -233,6 +265,7 @@ dependencies:
233
265
  type: :development
234
266
  prerelease: false
235
267
  version_requirements: !ruby/object:Gem::Requirement
268
+ none: false
236
269
  requirements:
237
270
  - - ! '>='
238
271
  - !ruby/object:Gem::Version
@@ -240,6 +273,7 @@ dependencies:
240
273
  - !ruby/object:Gem::Dependency
241
274
  name: foreman
242
275
  requirement: !ruby/object:Gem::Requirement
276
+ none: false
243
277
  requirements:
244
278
  - - ! '>='
245
279
  - !ruby/object:Gem::Version
@@ -247,6 +281,7 @@ dependencies:
247
281
  type: :development
248
282
  prerelease: false
249
283
  version_requirements: !ruby/object:Gem::Requirement
284
+ none: false
250
285
  requirements:
251
286
  - - ! '>='
252
287
  - !ruby/object:Gem::Version
@@ -254,6 +289,7 @@ dependencies:
254
289
  - !ruby/object:Gem::Dependency
255
290
  name: sprockets
256
291
  requirement: !ruby/object:Gem::Requirement
292
+ none: false
257
293
  requirements:
258
294
  - - ! '>='
259
295
  - !ruby/object:Gem::Version
@@ -261,6 +297,7 @@ dependencies:
261
297
  type: :development
262
298
  prerelease: false
263
299
  version_requirements: !ruby/object:Gem::Requirement
300
+ none: false
264
301
  requirements:
265
302
  - - ! '>='
266
303
  - !ruby/object:Gem::Version
@@ -268,6 +305,7 @@ dependencies:
268
305
  - !ruby/object:Gem::Dependency
269
306
  name: rake
270
307
  requirement: !ruby/object:Gem::Requirement
308
+ none: false
271
309
  requirements:
272
310
  - - ! '>='
273
311
  - !ruby/object:Gem::Version
@@ -275,6 +313,7 @@ dependencies:
275
313
  type: :development
276
314
  prerelease: false
277
315
  version_requirements: !ruby/object:Gem::Requirement
316
+ none: false
278
317
  requirements:
279
318
  - - ! '>='
280
319
  - !ruby/object:Gem::Version
@@ -352,26 +391,27 @@ files:
352
391
  - spec/spec_helper.rb
353
392
  homepage: http://firehose.io/
354
393
  licenses: []
355
- metadata: {}
356
394
  post_install_message:
357
395
  rdoc_options: []
358
396
  require_paths:
359
397
  - lib
360
398
  required_ruby_version: !ruby/object:Gem::Requirement
399
+ none: false
361
400
  requirements:
362
401
  - - ! '>='
363
402
  - !ruby/object:Gem::Version
364
403
  version: '0'
365
404
  required_rubygems_version: !ruby/object:Gem::Requirement
405
+ none: false
366
406
  requirements:
367
407
  - - ! '>='
368
408
  - !ruby/object:Gem::Version
369
409
  version: '0'
370
410
  requirements: []
371
411
  rubyforge_project: firehose
372
- rubygems_version: 2.0.3
412
+ rubygems_version: 1.8.23
373
413
  signing_key:
374
- specification_version: 4
414
+ specification_version: 3
375
415
  summary: Build realtime Ruby web applications
376
416
  test_files:
377
417
  - spec/integrations/integration_test_helper.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWRhZjRhMzQ1ZGUxYjA1YmFlMmViN2RkNmIyOGNlNWZhNjZhMTY5NA==
5
- data.tar.gz: !binary |-
6
- YTFiNjQ2MzcxMTBkMjc4OWJjMzRjYTViM2JkYjI2N2RhYzNhNWZlNQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YTFiOTdiMDU4Yjc5NTZiMThhN2M5ZTZhMjc4ZTdiMmNkOTg3NzRmN2QxYmEx
10
- NTkxOTEyOGJhZWZjMGU5YzAyYmNlZDY2ZGEzYjVhN2I2NTllMWQ3MjBhZWYx
11
- OTVhZWJiNTExNDFlN2Y3MGM2YWQxZTUwMGRiN2QxYzViMmQ4MGQ=
12
- data.tar.gz: !binary |-
13
- OTA4Njk1MWUyMDE1ZTA4M2NiZmZiMzEzNTAwOGMyMzg2NGY1NTgyZTBlYmY0
14
- ZGEwZDZjZjViMjM4NDgxMzIxNjE5YjRiNjQ4MTMwMDYyMTdjYzNlNjJjMmZi
15
- YjcxMDYyZGZhOThiZWRhOGU5Njk5YzEyODI2NWQ0Y2EzY2I4N2M=