firehose 1.1.1 → 1.2.0

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