firehose 1.1.1 → 1.2.0

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.
Files changed (48) hide show
  1. checksums.yaml +15 -0
  2. data/.rbenv-version +1 -1
  3. data/README.md +1 -1
  4. data/config/rainbows.rb +4 -3
  5. data/lib/firehose.rb +6 -8
  6. data/lib/firehose/assets.rb +1 -3
  7. data/lib/firehose/cli.rb +6 -8
  8. data/lib/firehose/client.rb +2 -84
  9. data/lib/firehose/client/consumer.rb +94 -0
  10. data/lib/firehose/client/producer.rb +106 -0
  11. data/lib/firehose/logging.rb +1 -4
  12. data/lib/{rainbows_em_swf_policy.rb → firehose/patches/rainbows.rb} +4 -2
  13. data/lib/firehose/patches/swf_policy_request.rb +26 -0
  14. data/lib/{thin_em_swf_policy.rb → firehose/patches/thin.rb} +2 -1
  15. data/lib/firehose/rack.rb +12 -39
  16. data/lib/firehose/rack/app.rb +42 -0
  17. data/lib/firehose/rack/{consumer_app.rb → consumer.rb} +7 -5
  18. data/lib/firehose/rack/{ping_app.rb → ping.rb} +4 -2
  19. data/lib/firehose/rack/{publisher_app.rb → publisher.rb} +3 -3
  20. data/lib/firehose/server.rb +16 -42
  21. data/lib/firehose/server/app.rb +53 -0
  22. data/lib/firehose/server/channel.rb +80 -0
  23. data/lib/firehose/server/publisher.rb +134 -0
  24. data/lib/firehose/server/subscriber.rb +50 -0
  25. data/lib/firehose/version.rb +2 -2
  26. data/spec/integrations/integration_test_helper.rb +2 -2
  27. data/spec/integrations/shared_examples.rb +3 -3
  28. data/spec/lib/{client_spec.rb → client/consumer_spec.rb} +0 -0
  29. data/spec/lib/{producer_spec.rb → client/producer_spec.rb} +13 -13
  30. data/spec/lib/firehose_spec.rb +7 -0
  31. data/spec/lib/rack/{consumer_app_spec.rb → consumer_spec.rb} +2 -2
  32. data/spec/lib/rack/{ping_app_spec.rb → ping_spec.rb} +3 -3
  33. data/spec/lib/rack/{publisher_app_spec.rb → publisher_spec.rb} +3 -3
  34. data/spec/lib/server/app_spec.rb +1 -0
  35. data/spec/lib/{channel_spec.rb → server/channel_spec.rb} +4 -4
  36. data/spec/lib/{publisher_spec.rb → server/publisher_spec.rb} +9 -9
  37. data/spec/lib/{subscriber_spec.rb → server/subscriber_spec.rb} +4 -4
  38. data/spec/spec_helper.rb +0 -5
  39. metadata +38 -77
  40. data/lib/firehose/channel.rb +0 -84
  41. data/lib/firehose/default.rb +0 -8
  42. data/lib/firehose/producer.rb +0 -104
  43. data/lib/firehose/publisher.rb +0 -127
  44. data/lib/firehose/subscriber.rb +0 -54
  45. data/lib/firehose/swf_policy_request.rb +0 -23
  46. data/spec/lib/broker_spec.rb +0 -30
  47. data/spec/lib/consumer_spec.rb +0 -66
  48. data/spec/lib/default_spec.rb +0 -7
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Firehose::Subscriber do
3
+ describe Firehose::Server::Subscriber do
4
4
  include EM::TestHelper
5
5
 
6
6
  let(:channel_key) { '/bears/are/mean' }
7
- let(:subscriber) { Firehose::Subscriber.new(EM::Hiredis.connect) }
8
- let(:dummy_subscriber){ Firehose::Subscriber.new(double('redis', :pubsub => double('pubsub', :subscribe => EM::DefaultDeferrable.new, :on => nil))) }
7
+ let(:subscriber) { Firehose::Server::Subscriber.new(EM::Hiredis.connect) }
8
+ let(:dummy_subscriber){ Firehose::Server::Subscriber.new(double('redis', :pubsub => double('pubsub', :subscribe => EM::DefaultDeferrable.new, :on => nil))) }
9
9
  let(:message) { 'Raaaarrrrrr!!!!' }
10
- let(:publisher) { Firehose::Publisher.new }
10
+ let(:publisher) { Firehose::Server::Publisher.new }
11
11
 
12
12
  describe "#subscribe" do
13
13
  it "should add the deferrable to the subscriptions hash" do
data/spec/spec_helper.rb CHANGED
@@ -4,10 +4,8 @@ require 'logger'
4
4
  require 'em-http'
5
5
  require 'faye/websocket'
6
6
  require 'hiredis'
7
-
8
7
  require 'firehose'
9
8
 
10
-
11
9
  # We use both EM::Http and Net::Http in this test lib. When EM:Http is fired up
12
10
  # we're usually hitting Rainbows! for integrations, and when Net::Http we want
13
11
  # to mock that up.
@@ -62,9 +60,6 @@ RSpec.configure do |config|
62
60
  end
63
61
  end
64
62
 
65
-
66
-
67
-
68
63
  # Allow async responses to get through rack/lint
69
64
  require 'rack/lint'
70
65
  class Rack::Lint
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.1.1
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Brad Gessler
@@ -17,7 +16,6 @@ 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
@@ -25,7 +23,6 @@ dependencies:
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
@@ -33,7 +30,6 @@ dependencies:
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
@@ -41,7 +37,6 @@ dependencies:
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
@@ -49,7 +44,6 @@ dependencies:
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
@@ -57,7 +51,6 @@ dependencies:
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
@@ -65,7 +58,6 @@ dependencies:
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
@@ -73,7 +65,6 @@ dependencies:
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
@@ -81,7 +72,6 @@ dependencies:
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
@@ -89,7 +79,6 @@ dependencies:
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
@@ -97,7 +86,6 @@ dependencies:
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
@@ -105,7 +93,6 @@ dependencies:
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
@@ -113,7 +100,6 @@ dependencies:
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
@@ -121,7 +107,6 @@ dependencies:
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
@@ -129,7 +114,6 @@ dependencies:
129
114
  - !ruby/object:Gem::Dependency
130
115
  name: rspec
131
116
  requirement: !ruby/object:Gem::Requirement
132
- none: false
133
117
  requirements:
134
118
  - - ! '>='
135
119
  - !ruby/object:Gem::Version
@@ -137,7 +121,6 @@ dependencies:
137
121
  type: :development
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
@@ -145,7 +128,6 @@ dependencies:
145
128
  - !ruby/object:Gem::Dependency
146
129
  name: webmock
147
130
  requirement: !ruby/object:Gem::Requirement
148
- none: false
149
131
  requirements:
150
132
  - - ! '>='
151
133
  - !ruby/object:Gem::Version
@@ -153,7 +135,6 @@ dependencies:
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
@@ -161,7 +142,6 @@ dependencies:
161
142
  - !ruby/object:Gem::Dependency
162
143
  name: guard-rspec
163
144
  requirement: !ruby/object:Gem::Requirement
164
- none: false
165
145
  requirements:
166
146
  - - ! '>='
167
147
  - !ruby/object:Gem::Version
@@ -169,7 +149,6 @@ dependencies:
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
@@ -177,7 +156,6 @@ dependencies:
177
156
  - !ruby/object:Gem::Dependency
178
157
  name: guard-bundler
179
158
  requirement: !ruby/object:Gem::Requirement
180
- none: false
181
159
  requirements:
182
160
  - - ! '>='
183
161
  - !ruby/object:Gem::Version
@@ -185,7 +163,6 @@ dependencies:
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
@@ -193,7 +170,6 @@ dependencies:
193
170
  - !ruby/object:Gem::Dependency
194
171
  name: guard-coffeescript
195
172
  requirement: !ruby/object:Gem::Requirement
196
- none: false
197
173
  requirements:
198
174
  - - ! '>='
199
175
  - !ruby/object:Gem::Version
@@ -201,7 +177,6 @@ dependencies:
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
@@ -209,7 +184,6 @@ dependencies:
209
184
  - !ruby/object:Gem::Dependency
210
185
  name: rainbows
211
186
  requirement: !ruby/object:Gem::Requirement
212
- none: false
213
187
  requirements:
214
188
  - - ~>
215
189
  - !ruby/object:Gem::Version
@@ -217,7 +191,6 @@ dependencies:
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
@@ -225,7 +198,6 @@ dependencies:
225
198
  - !ruby/object:Gem::Dependency
226
199
  name: thin
227
200
  requirement: !ruby/object:Gem::Requirement
228
- none: false
229
201
  requirements:
230
202
  - - ! '>='
231
203
  - !ruby/object:Gem::Version
@@ -233,7 +205,6 @@ dependencies:
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
@@ -241,7 +212,6 @@ dependencies:
241
212
  - !ruby/object:Gem::Dependency
242
213
  name: rack-test
243
214
  requirement: !ruby/object:Gem::Requirement
244
- none: false
245
215
  requirements:
246
216
  - - ! '>='
247
217
  - !ruby/object:Gem::Version
@@ -249,7 +219,6 @@ dependencies:
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
@@ -257,7 +226,6 @@ dependencies:
257
226
  - !ruby/object:Gem::Dependency
258
227
  name: async_rack_test
259
228
  requirement: !ruby/object:Gem::Requirement
260
- none: false
261
229
  requirements:
262
230
  - - ! '>='
263
231
  - !ruby/object:Gem::Version
@@ -265,7 +233,6 @@ dependencies:
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
@@ -273,7 +240,6 @@ dependencies:
273
240
  - !ruby/object:Gem::Dependency
274
241
  name: foreman
275
242
  requirement: !ruby/object:Gem::Requirement
276
- none: false
277
243
  requirements:
278
244
  - - ! '>='
279
245
  - !ruby/object:Gem::Version
@@ -281,7 +247,6 @@ dependencies:
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
@@ -289,7 +254,6 @@ dependencies:
289
254
  - !ruby/object:Gem::Dependency
290
255
  name: sprockets
291
256
  requirement: !ruby/object:Gem::Requirement
292
- none: false
293
257
  requirements:
294
258
  - - ! '>='
295
259
  - !ruby/object:Gem::Version
@@ -297,7 +261,6 @@ dependencies:
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
@@ -305,7 +268,6 @@ dependencies:
305
268
  - !ruby/object:Gem::Dependency
306
269
  name: rake
307
270
  requirement: !ruby/object:Gem::Requirement
308
- none: false
309
271
  requirements:
310
272
  - - ! '>='
311
273
  - !ruby/object:Gem::Version
@@ -313,7 +275,6 @@ dependencies:
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
@@ -357,64 +318,64 @@ files:
357
318
  - lib/assets/javascripts/firehose/web_socket.js.coffee
358
319
  - lib/firehose.rb
359
320
  - lib/firehose/assets.rb
360
- - lib/firehose/channel.rb
361
321
  - lib/firehose/cli.rb
362
322
  - lib/firehose/client.rb
363
- - lib/firehose/default.rb
323
+ - lib/firehose/client/consumer.rb
324
+ - lib/firehose/client/producer.rb
364
325
  - lib/firehose/logging.rb
365
- - lib/firehose/producer.rb
366
- - lib/firehose/publisher.rb
326
+ - lib/firehose/patches/rainbows.rb
327
+ - lib/firehose/patches/swf_policy_request.rb
328
+ - lib/firehose/patches/thin.rb
367
329
  - lib/firehose/rack.rb
368
- - lib/firehose/rack/consumer_app.rb
369
- - lib/firehose/rack/ping_app.rb
370
- - lib/firehose/rack/publisher_app.rb
330
+ - lib/firehose/rack/app.rb
331
+ - lib/firehose/rack/consumer.rb
332
+ - lib/firehose/rack/ping.rb
333
+ - lib/firehose/rack/publisher.rb
371
334
  - lib/firehose/rails.rb
372
335
  - lib/firehose/server.rb
373
- - lib/firehose/subscriber.rb
374
- - lib/firehose/swf_policy_request.rb
336
+ - lib/firehose/server/app.rb
337
+ - lib/firehose/server/channel.rb
338
+ - lib/firehose/server/publisher.rb
339
+ - lib/firehose/server/subscriber.rb
375
340
  - lib/firehose/version.rb
376
- - lib/rainbows_em_swf_policy.rb
377
- - lib/thin_em_swf_policy.rb
378
341
  - spec/integrations/integration_test_helper.rb
379
342
  - spec/integrations/rainbows_spec.rb
380
343
  - spec/integrations/shared_examples.rb
381
344
  - spec/integrations/thin_spec.rb
382
345
  - spec/lib/assets_spec.rb
383
- - spec/lib/broker_spec.rb
384
- - spec/lib/channel_spec.rb
385
- - spec/lib/client_spec.rb
386
- - spec/lib/consumer_spec.rb
387
- - spec/lib/default_spec.rb
388
- - spec/lib/producer_spec.rb
389
- - spec/lib/publisher_spec.rb
390
- - spec/lib/rack/consumer_app_spec.rb
391
- - spec/lib/rack/ping_app_spec.rb
392
- - spec/lib/rack/publisher_app_spec.rb
393
- - spec/lib/subscriber_spec.rb
346
+ - spec/lib/client/consumer_spec.rb
347
+ - spec/lib/client/producer_spec.rb
348
+ - spec/lib/firehose_spec.rb
349
+ - spec/lib/rack/consumer_spec.rb
350
+ - spec/lib/rack/ping_spec.rb
351
+ - spec/lib/rack/publisher_spec.rb
352
+ - spec/lib/server/app_spec.rb
353
+ - spec/lib/server/channel_spec.rb
354
+ - spec/lib/server/publisher_spec.rb
355
+ - spec/lib/server/subscriber_spec.rb
394
356
  - spec/spec_helper.rb
395
357
  homepage: http://firehose.io/
396
358
  licenses: []
359
+ metadata: {}
397
360
  post_install_message:
398
361
  rdoc_options: []
399
362
  require_paths:
400
363
  - lib
401
364
  required_ruby_version: !ruby/object:Gem::Requirement
402
- none: false
403
365
  requirements:
404
366
  - - ! '>='
405
367
  - !ruby/object:Gem::Version
406
368
  version: '0'
407
369
  required_rubygems_version: !ruby/object:Gem::Requirement
408
- none: false
409
370
  requirements:
410
371
  - - ! '>='
411
372
  - !ruby/object:Gem::Version
412
373
  version: '0'
413
374
  requirements: []
414
375
  rubyforge_project: firehose
415
- rubygems_version: 1.8.23
376
+ rubygems_version: 2.0.3
416
377
  signing_key:
417
- specification_version: 3
378
+ specification_version: 4
418
379
  summary: Build realtime Ruby web applications
419
380
  test_files:
420
381
  - spec/integrations/integration_test_helper.rb
@@ -422,15 +383,15 @@ test_files:
422
383
  - spec/integrations/shared_examples.rb
423
384
  - spec/integrations/thin_spec.rb
424
385
  - spec/lib/assets_spec.rb
425
- - spec/lib/broker_spec.rb
426
- - spec/lib/channel_spec.rb
427
- - spec/lib/client_spec.rb
428
- - spec/lib/consumer_spec.rb
429
- - spec/lib/default_spec.rb
430
- - spec/lib/producer_spec.rb
431
- - spec/lib/publisher_spec.rb
432
- - spec/lib/rack/consumer_app_spec.rb
433
- - spec/lib/rack/ping_app_spec.rb
434
- - spec/lib/rack/publisher_app_spec.rb
435
- - spec/lib/subscriber_spec.rb
386
+ - spec/lib/client/consumer_spec.rb
387
+ - spec/lib/client/producer_spec.rb
388
+ - spec/lib/firehose_spec.rb
389
+ - spec/lib/rack/consumer_spec.rb
390
+ - spec/lib/rack/ping_spec.rb
391
+ - spec/lib/rack/publisher_spec.rb
392
+ - spec/lib/server/app_spec.rb
393
+ - spec/lib/server/channel_spec.rb
394
+ - spec/lib/server/publisher_spec.rb
395
+ - spec/lib/server/subscriber_spec.rb
436
396
  - spec/spec_helper.rb
397
+ has_rdoc: