firehose 1.2.20 → 2.1.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 (91) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +36 -0
  3. data/{LICENSE.txt → LICENSE} +6 -6
  4. data/README.md +389 -139
  5. data/app/assets/javascripts/firehose.js +258 -0
  6. data/config/importmap.rb +1 -0
  7. data/db/migrate/20260214185244_create_firehose_events.rb +23 -0
  8. data/lib/commands/firehose_command.rb +119 -0
  9. data/lib/firehose/channel.rb +40 -0
  10. data/lib/firehose/cleanup_job.rb +21 -0
  11. data/lib/firehose/engine.rb +36 -0
  12. data/lib/firehose/helper.rb +40 -0
  13. data/lib/firehose/models/channel.rb +12 -0
  14. data/lib/firehose/models/message.rb +11 -0
  15. data/lib/firehose/queue.rb +44 -0
  16. data/lib/firehose/server.rb +931 -18
  17. data/lib/firehose/sse.rb +187 -0
  18. data/lib/firehose/stream.rb +32 -0
  19. data/lib/firehose/streamable.rb +25 -0
  20. data/lib/firehose/websocket.rb +242 -0
  21. data/lib/firehose.rb +67 -15
  22. data/lib/generators/firehose/install/install_generator.rb +43 -0
  23. data/lib/generators/firehose/install/templates/firehose_controller.rb +16 -0
  24. metadata +40 -428
  25. data/.env.sample +0 -17
  26. data/.gitignore +0 -12
  27. data/.rbenv-version +0 -1
  28. data/.rspec +0 -1
  29. data/.travis.yml +0 -16
  30. data/Gemfile +0 -4
  31. data/Guardfile +0 -31
  32. data/Procfile +0 -1
  33. data/Procfile.dev +0 -4
  34. data/Rakefile +0 -53
  35. data/bin/firehose +0 -9
  36. data/config/evergreen.rb +0 -9
  37. data/config/rainbows.rb +0 -17
  38. data/firehose.gemspec +0 -49
  39. data/lib/assets/javascripts/firehose/base.js.coffee +0 -4
  40. data/lib/assets/javascripts/firehose/consumer.js.coffee +0 -70
  41. data/lib/assets/javascripts/firehose/core.js.coffee +0 -5
  42. data/lib/assets/javascripts/firehose/long_poll.js.coffee +0 -149
  43. data/lib/assets/javascripts/firehose/transport.js.coffee +0 -42
  44. data/lib/assets/javascripts/firehose/version.js.coffee.erb +0 -2
  45. data/lib/assets/javascripts/firehose/web_socket.js.coffee +0 -102
  46. data/lib/assets/javascripts/firehose.js.coffee +0 -3
  47. data/lib/assets/javascripts/vendor/json2.js +0 -487
  48. data/lib/firehose/assets.rb +0 -56
  49. data/lib/firehose/cli.rb +0 -78
  50. data/lib/firehose/client/consumer.rb +0 -94
  51. data/lib/firehose/client/producer.rb +0 -108
  52. data/lib/firehose/client.rb +0 -10
  53. data/lib/firehose/logging.rb +0 -32
  54. data/lib/firehose/rack/app.rb +0 -49
  55. data/lib/firehose/rack/consumer/http_long_poll.rb +0 -86
  56. data/lib/firehose/rack/consumer/web_socket.rb +0 -95
  57. data/lib/firehose/rack/consumer.rb +0 -39
  58. data/lib/firehose/rack/ping.rb +0 -88
  59. data/lib/firehose/rack/publisher.rb +0 -53
  60. data/lib/firehose/rack.rb +0 -32
  61. data/lib/firehose/rails.rb +0 -7
  62. data/lib/firehose/server/app.rb +0 -52
  63. data/lib/firehose/server/channel.rb +0 -80
  64. data/lib/firehose/server/publisher.rb +0 -134
  65. data/lib/firehose/server/subscriber.rb +0 -51
  66. data/lib/firehose/version.rb +0 -4
  67. data/package.json +0 -5
  68. data/spec/integrations/integration_test_helper.rb +0 -22
  69. data/spec/integrations/rainbows_spec.rb +0 -7
  70. data/spec/integrations/shared_examples.rb +0 -120
  71. data/spec/integrations/thin_spec.rb +0 -7
  72. data/spec/javascripts/firehose/base_spec.coffee +0 -2
  73. data/spec/javascripts/firehose/consumer_spec.coffee +0 -45
  74. data/spec/javascripts/firehose/long_poll_spec.coffee +0 -44
  75. data/spec/javascripts/firehose/transport_spec.coffee +0 -32
  76. data/spec/javascripts/firehose/websocket_spec.coffee +0 -25
  77. data/spec/javascripts/helpers/spec_helper.js +0 -30
  78. data/spec/javascripts/support/sinon-1.7.3.js +0 -4290
  79. data/spec/lib/assets_spec.rb +0 -35
  80. data/spec/lib/client/consumer_spec.rb +0 -13
  81. data/spec/lib/client/producer_spec.rb +0 -71
  82. data/spec/lib/firehose_spec.rb +0 -7
  83. data/spec/lib/rack/consumer/http_long_poll_spec.rb +0 -12
  84. data/spec/lib/rack/consumer_spec.rb +0 -19
  85. data/spec/lib/rack/ping_spec.rb +0 -28
  86. data/spec/lib/rack/publisher_spec.rb +0 -34
  87. data/spec/lib/server/app_spec.rb +0 -15
  88. data/spec/lib/server/channel_spec.rb +0 -164
  89. data/spec/lib/server/publisher_spec.rb +0 -84
  90. data/spec/lib/server/subscriber_spec.rb +0 -69
  91. data/spec/spec_helper.rb +0 -77
metadata CHANGED
@@ -1,48 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firehose
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.20
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Gessler
8
- - Steel Fu
9
- - Paul Cortens
10
- - Zach Zolton
11
- autorequire:
12
8
  bindir: bin
13
9
  cert_chain: []
14
- date: 2014-09-24 00:00:00.000000000 Z
10
+ date: 2026-10-18 00:00:00.000000000 Z
15
11
  dependencies:
16
12
  - !ruby/object:Gem::Dependency
17
- name: eventmachine
13
+ name: rails
18
14
  requirement: !ruby/object:Gem::Requirement
19
15
  requirements:
20
16
  - - ">="
21
17
  - !ruby/object:Gem::Version
22
- version: 1.0.0
18
+ version: '7.0'
23
19
  type: :runtime
24
20
  prerelease: false
25
21
  version_requirements: !ruby/object:Gem::Requirement
26
22
  requirements:
27
23
  - - ">="
28
24
  - !ruby/object:Gem::Version
29
- version: 1.0.0
25
+ version: '7.0'
30
26
  - !ruby/object:Gem::Dependency
31
- name: em-hiredis
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 0.2.0
37
- type: :runtime
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 0.2.0
44
- - !ruby/object:Gem::Dependency
45
- name: thor
27
+ name: pg
46
28
  requirement: !ruby/object:Gem::Requirement
47
29
  requirements:
48
30
  - - ">="
@@ -56,7 +38,7 @@ dependencies:
56
38
  - !ruby/object:Gem::Version
57
39
  version: '0'
58
40
  - !ruby/object:Gem::Dependency
59
- name: faraday
41
+ name: async-websocket
60
42
  requirement: !ruby/object:Gem::Requirement
61
43
  requirements:
62
44
  - - ">="
@@ -69,388 +51,44 @@ dependencies:
69
51
  - - ">="
70
52
  - !ruby/object:Gem::Version
71
53
  version: '0'
72
- - !ruby/object:Gem::Dependency
73
- name: faye-websocket
74
- requirement: !ruby/object:Gem::Requirement
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: '0'
79
- type: :runtime
80
- prerelease: false
81
- version_requirements: !ruby/object:Gem::Requirement
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- - !ruby/object:Gem::Dependency
87
- name: em-http-request
88
- requirement: !ruby/object:Gem::Requirement
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: 1.0.0
93
- type: :runtime
94
- prerelease: false
95
- version_requirements: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: 1.0.0
100
- - !ruby/object:Gem::Dependency
101
- name: json
102
- requirement: !ruby/object:Gem::Requirement
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: '0'
107
- type: :runtime
108
- prerelease: false
109
- version_requirements: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: '0'
114
- - !ruby/object:Gem::Dependency
115
- name: rack
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- type: :runtime
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: '0'
128
- - !ruby/object:Gem::Dependency
129
- name: rspec
130
- requirement: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: '2'
135
- type: :development
136
- prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '2'
142
- - !ruby/object:Gem::Dependency
143
- name: webmock
144
- requirement: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: '0'
149
- type: :development
150
- prerelease: false
151
- version_requirements: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- version: '0'
156
- - !ruby/object:Gem::Dependency
157
- name: coffee-script
158
- requirement: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- version: '0'
163
- type: :development
164
- prerelease: false
165
- version_requirements: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: '0'
170
- - !ruby/object:Gem::Dependency
171
- name: guard-rspec
172
- requirement: !ruby/object:Gem::Requirement
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: '0'
177
- type: :development
178
- prerelease: false
179
- version_requirements: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- version: '0'
184
- - !ruby/object:Gem::Dependency
185
- name: guard-bundler
186
- requirement: !ruby/object:Gem::Requirement
187
- requirements:
188
- - - ">="
189
- - !ruby/object:Gem::Version
190
- version: '0'
191
- type: :development
192
- prerelease: false
193
- version_requirements: !ruby/object:Gem::Requirement
194
- requirements:
195
- - - ">="
196
- - !ruby/object:Gem::Version
197
- version: '0'
198
- - !ruby/object:Gem::Dependency
199
- name: guard-coffeescript
200
- requirement: !ruby/object:Gem::Requirement
201
- requirements:
202
- - - ">="
203
- - !ruby/object:Gem::Version
204
- version: '0'
205
- type: :development
206
- prerelease: false
207
- version_requirements: !ruby/object:Gem::Requirement
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- version: '0'
212
- - !ruby/object:Gem::Dependency
213
- name: guard-copy
214
- requirement: !ruby/object:Gem::Requirement
215
- requirements:
216
- - - ">="
217
- - !ruby/object:Gem::Version
218
- version: '0'
219
- type: :development
220
- prerelease: false
221
- version_requirements: !ruby/object:Gem::Requirement
222
- requirements:
223
- - - ">="
224
- - !ruby/object:Gem::Version
225
- version: '0'
226
- - !ruby/object:Gem::Dependency
227
- name: rainbows
228
- requirement: !ruby/object:Gem::Requirement
229
- requirements:
230
- - - "~>"
231
- - !ruby/object:Gem::Version
232
- version: 4.4.3
233
- type: :development
234
- prerelease: false
235
- version_requirements: !ruby/object:Gem::Requirement
236
- requirements:
237
- - - "~>"
238
- - !ruby/object:Gem::Version
239
- version: 4.4.3
240
- - !ruby/object:Gem::Dependency
241
- name: thin
242
- requirement: !ruby/object:Gem::Requirement
243
- requirements:
244
- - - ">="
245
- - !ruby/object:Gem::Version
246
- version: '0'
247
- type: :development
248
- prerelease: false
249
- version_requirements: !ruby/object:Gem::Requirement
250
- requirements:
251
- - - ">="
252
- - !ruby/object:Gem::Version
253
- version: '0'
254
- - !ruby/object:Gem::Dependency
255
- name: rack-test
256
- requirement: !ruby/object:Gem::Requirement
257
- requirements:
258
- - - ">="
259
- - !ruby/object:Gem::Version
260
- version: '0'
261
- type: :development
262
- prerelease: false
263
- version_requirements: !ruby/object:Gem::Requirement
264
- requirements:
265
- - - ">="
266
- - !ruby/object:Gem::Version
267
- version: '0'
268
- - !ruby/object:Gem::Dependency
269
- name: async_rack_test
270
- requirement: !ruby/object:Gem::Requirement
271
- requirements:
272
- - - ">="
273
- - !ruby/object:Gem::Version
274
- version: '0'
275
- type: :development
276
- prerelease: false
277
- version_requirements: !ruby/object:Gem::Requirement
278
- requirements:
279
- - - ">="
280
- - !ruby/object:Gem::Version
281
- version: '0'
282
- - !ruby/object:Gem::Dependency
283
- name: foreman
284
- requirement: !ruby/object:Gem::Requirement
285
- requirements:
286
- - - ">="
287
- - !ruby/object:Gem::Version
288
- version: '0'
289
- type: :development
290
- prerelease: false
291
- version_requirements: !ruby/object:Gem::Requirement
292
- requirements:
293
- - - ">="
294
- - !ruby/object:Gem::Version
295
- version: '0'
296
- - !ruby/object:Gem::Dependency
297
- name: sprockets
298
- requirement: !ruby/object:Gem::Requirement
299
- requirements:
300
- - - ">="
301
- - !ruby/object:Gem::Version
302
- version: '0'
303
- type: :development
304
- prerelease: false
305
- version_requirements: !ruby/object:Gem::Requirement
306
- requirements:
307
- - - ">="
308
- - !ruby/object:Gem::Version
309
- version: '0'
310
- - !ruby/object:Gem::Dependency
311
- name: rake
312
- requirement: !ruby/object:Gem::Requirement
313
- requirements:
314
- - - ">="
315
- - !ruby/object:Gem::Version
316
- version: '0'
317
- type: :development
318
- prerelease: false
319
- version_requirements: !ruby/object:Gem::Requirement
320
- requirements:
321
- - - ">="
322
- - !ruby/object:Gem::Version
323
- version: '0'
324
- - !ruby/object:Gem::Dependency
325
- name: evergreen
326
- requirement: !ruby/object:Gem::Requirement
327
- requirements:
328
- - - ">="
329
- - !ruby/object:Gem::Version
330
- version: '0'
331
- type: :development
332
- prerelease: false
333
- version_requirements: !ruby/object:Gem::Requirement
334
- requirements:
335
- - - ">="
336
- - !ruby/object:Gem::Version
337
- version: '0'
338
- - !ruby/object:Gem::Dependency
339
- name: capybara-webkit
340
- requirement: !ruby/object:Gem::Requirement
341
- requirements:
342
- - - ">="
343
- - !ruby/object:Gem::Version
344
- version: '0'
345
- type: :development
346
- prerelease: false
347
- version_requirements: !ruby/object:Gem::Requirement
348
- requirements:
349
- - - ">="
350
- - !ruby/object:Gem::Version
351
- version: '0'
352
- - !ruby/object:Gem::Dependency
353
- name: therubyracer
354
- requirement: !ruby/object:Gem::Requirement
355
- requirements:
356
- - - ">="
357
- - !ruby/object:Gem::Version
358
- version: '0'
359
- type: :development
360
- prerelease: false
361
- version_requirements: !ruby/object:Gem::Requirement
362
- requirements:
363
- - - ">="
364
- - !ruby/object:Gem::Version
365
- version: '0'
366
- description: Firehose is a realtime web application toolkit for building realtime
367
- Ruby web applications.
54
+ description: Real-time streaming for Rails with PostgreSQL persistence and replay
55
+ support. Supports both WebSocket and Server-Sent Events transports with automatic
56
+ reconnection and event replay.
368
57
  email:
369
- - brad@polleverywhere.com
370
- - steel@polleverywhere.com
371
- - paul@polleverywhere.com
372
- - zach@polleverywhere.com
373
- executables:
374
- - firehose
58
+ - brad@bradgessler.com
59
+ executables: []
375
60
  extensions: []
376
61
  extra_rdoc_files: []
377
62
  files:
378
- - ".env.sample"
379
- - ".gitignore"
380
- - ".rbenv-version"
381
- - ".rspec"
382
- - ".travis.yml"
383
- - Gemfile
384
- - Guardfile
385
- - LICENSE.txt
386
- - Procfile
387
- - Procfile.dev
63
+ - CHANGELOG.md
64
+ - LICENSE
388
65
  - README.md
389
- - Rakefile
390
- - bin/firehose
391
- - config/evergreen.rb
392
- - config/rainbows.rb
393
- - firehose.gemspec
394
- - lib/assets/javascripts/firehose.js.coffee
395
- - lib/assets/javascripts/firehose/base.js.coffee
396
- - lib/assets/javascripts/firehose/consumer.js.coffee
397
- - lib/assets/javascripts/firehose/core.js.coffee
398
- - lib/assets/javascripts/firehose/long_poll.js.coffee
399
- - lib/assets/javascripts/firehose/transport.js.coffee
400
- - lib/assets/javascripts/firehose/version.js.coffee.erb
401
- - lib/assets/javascripts/firehose/web_socket.js.coffee
402
- - lib/assets/javascripts/vendor/json2.js
66
+ - app/assets/javascripts/firehose.js
67
+ - config/importmap.rb
68
+ - db/migrate/20260214185244_create_firehose_events.rb
69
+ - lib/commands/firehose_command.rb
403
70
  - lib/firehose.rb
404
- - lib/firehose/assets.rb
405
- - lib/firehose/cli.rb
406
- - lib/firehose/client.rb
407
- - lib/firehose/client/consumer.rb
408
- - lib/firehose/client/producer.rb
409
- - lib/firehose/logging.rb
410
- - lib/firehose/rack.rb
411
- - lib/firehose/rack/app.rb
412
- - lib/firehose/rack/consumer.rb
413
- - lib/firehose/rack/consumer/http_long_poll.rb
414
- - lib/firehose/rack/consumer/web_socket.rb
415
- - lib/firehose/rack/ping.rb
416
- - lib/firehose/rack/publisher.rb
417
- - lib/firehose/rails.rb
71
+ - lib/firehose/channel.rb
72
+ - lib/firehose/cleanup_job.rb
73
+ - lib/firehose/engine.rb
74
+ - lib/firehose/helper.rb
75
+ - lib/firehose/models/channel.rb
76
+ - lib/firehose/models/message.rb
77
+ - lib/firehose/queue.rb
418
78
  - lib/firehose/server.rb
419
- - lib/firehose/server/app.rb
420
- - lib/firehose/server/channel.rb
421
- - lib/firehose/server/publisher.rb
422
- - lib/firehose/server/subscriber.rb
423
- - lib/firehose/version.rb
424
- - package.json
425
- - spec/integrations/integration_test_helper.rb
426
- - spec/integrations/rainbows_spec.rb
427
- - spec/integrations/shared_examples.rb
428
- - spec/integrations/thin_spec.rb
429
- - spec/javascripts/firehose/base_spec.coffee
430
- - spec/javascripts/firehose/consumer_spec.coffee
431
- - spec/javascripts/firehose/long_poll_spec.coffee
432
- - spec/javascripts/firehose/transport_spec.coffee
433
- - spec/javascripts/firehose/websocket_spec.coffee
434
- - spec/javascripts/helpers/spec_helper.js
435
- - spec/javascripts/support/sinon-1.7.3.js
436
- - spec/lib/assets_spec.rb
437
- - spec/lib/client/consumer_spec.rb
438
- - spec/lib/client/producer_spec.rb
439
- - spec/lib/firehose_spec.rb
440
- - spec/lib/rack/consumer/http_long_poll_spec.rb
441
- - spec/lib/rack/consumer_spec.rb
442
- - spec/lib/rack/ping_spec.rb
443
- - spec/lib/rack/publisher_spec.rb
444
- - spec/lib/server/app_spec.rb
445
- - spec/lib/server/channel_spec.rb
446
- - spec/lib/server/publisher_spec.rb
447
- - spec/lib/server/subscriber_spec.rb
448
- - spec/spec_helper.rb
449
- homepage: http://firehose.io/
79
+ - lib/firehose/sse.rb
80
+ - lib/firehose/stream.rb
81
+ - lib/firehose/streamable.rb
82
+ - lib/firehose/websocket.rb
83
+ - lib/generators/firehose/install/install_generator.rb
84
+ - lib/generators/firehose/install/templates/firehose_controller.rb
85
+ homepage: https://github.com/firehoseio/next
450
86
  licenses:
451
87
  - MIT
452
- metadata: {}
453
- post_install_message:
88
+ metadata:
89
+ homepage_uri: https://github.com/firehoseio/next
90
+ source_code_uri: https://github.com/firehoseio/next
91
+ changelog_uri: https://github.com/firehoseio/next/blob/main/CHANGELOG.md
454
92
  rdoc_options: []
455
93
  require_paths:
456
94
  - lib
@@ -458,40 +96,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
458
96
  requirements:
459
97
  - - ">="
460
98
  - !ruby/object:Gem::Version
461
- version: '0'
99
+ version: 3.2.0
462
100
  required_rubygems_version: !ruby/object:Gem::Requirement
463
101
  requirements:
464
102
  - - ">="
465
103
  - !ruby/object:Gem::Version
466
104
  version: '0'
467
105
  requirements: []
468
- rubyforge_project: firehose
469
- rubygems_version: 2.2.2
470
- signing_key:
106
+ rubygems_version: 3.6.2
471
107
  specification_version: 4
472
- summary: Build realtime Ruby web applications
473
- test_files:
474
- - spec/integrations/integration_test_helper.rb
475
- - spec/integrations/rainbows_spec.rb
476
- - spec/integrations/shared_examples.rb
477
- - spec/integrations/thin_spec.rb
478
- - spec/javascripts/firehose/base_spec.coffee
479
- - spec/javascripts/firehose/consumer_spec.coffee
480
- - spec/javascripts/firehose/long_poll_spec.coffee
481
- - spec/javascripts/firehose/transport_spec.coffee
482
- - spec/javascripts/firehose/websocket_spec.coffee
483
- - spec/javascripts/helpers/spec_helper.js
484
- - spec/javascripts/support/sinon-1.7.3.js
485
- - spec/lib/assets_spec.rb
486
- - spec/lib/client/consumer_spec.rb
487
- - spec/lib/client/producer_spec.rb
488
- - spec/lib/firehose_spec.rb
489
- - spec/lib/rack/consumer/http_long_poll_spec.rb
490
- - spec/lib/rack/consumer_spec.rb
491
- - spec/lib/rack/ping_spec.rb
492
- - spec/lib/rack/publisher_spec.rb
493
- - spec/lib/server/app_spec.rb
494
- - spec/lib/server/channel_spec.rb
495
- - spec/lib/server/publisher_spec.rb
496
- - spec/lib/server/subscriber_spec.rb
497
- - spec/spec_helper.rb
108
+ summary: WebSocket and SSE streaming with database-backed replay
109
+ test_files: []
data/.env.sample DELETED
@@ -1,17 +0,0 @@
1
- # This is picked up by em-hiredis
2
- REDIS_URL=redis://127.0.0.1:6379/0
3
-
4
- # Configure the verbosity of the logger.
5
- LOG_LEVEL=debug
6
-
7
- # Firehose port binding.
8
- PORT=7474
9
-
10
- # Firehose IP address binding.
11
- HOST=127.0.0.1
12
-
13
- # Can be rainbows or thin
14
- SERVER=rainbows
15
-
16
- # Configure a production or development environment for Rainbows! or Thin.
17
- RACK_ENV=development
data/.gitignore DELETED
@@ -1,12 +0,0 @@
1
- *.gem
2
- .bundle
3
- .DS_Store
4
- *.swp
5
- .env
6
- log/*
7
- pkg/*
8
- tmp
9
- *.sublime-project
10
- *.sublime-workspace
11
- public/javascripts
12
- Gemfile.lock
data/.rbenv-version DELETED
@@ -1 +0,0 @@
1
- 2.1.2
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --colour --backtrace
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 1.9.3
5
- - 2.0.0
6
- - 2.1.0
7
-
8
- services:
9
- - redis-server
10
-
11
- before_script:
12
- - bundle exec rake travis:prepare
13
-
14
- script:
15
- - bundle exec rake spec
16
- - xvfb-run bundle exec rake evergreen:run
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in firehose.gemspec
4
- gemspec
data/Guardfile DELETED
@@ -1,31 +0,0 @@
1
- guard 'bundler' do
2
- watch 'Gemfile'
3
- watch /^.+\.gemspec/
4
- end
5
-
6
-
7
- guard 'coffeescript',
8
- input: 'lib/assets/javascripts',
9
- output: 'public/javascripts',
10
- all_on_start: true
11
-
12
-
13
- guard 'rspec', :version => 2 do
14
- watch(%r{^spec/.+_spec\.rb$})
15
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
16
- watch('spec/spec_helper.rb') { "spec" }
17
- end
18
-
19
-
20
- guard :copy,
21
- from: 'lib/assets/javascripts/vendor',
22
- to: 'public/javascripts/vendor',
23
- mkpath: true,
24
- run_at_start: true
25
-
26
-
27
- guard :copy,
28
- from: 'spec/javascripts/support',
29
- to: 'public/javascripts/vendor',
30
- mkpath: true,
31
- run_at_start: true
data/Procfile DELETED
@@ -1 +0,0 @@
1
- firehose: ./bin/firehose server -p $PORT
data/Procfile.dev DELETED
@@ -1,4 +0,0 @@
1
- firehose: ./bin/firehose server -p $PORT
2
- redis: redis-server
3
- evergreen: rake evergreen:serve
4
- # guard: guard
data/Rakefile DELETED
@@ -1,53 +0,0 @@
1
- require "rake/testtask"
2
- require 'bundler/gem_tasks'
3
- require 'rspec/core/rake_task'
4
- require 'coffee-script'
5
-
6
-
7
- task :default => [:spec, 'evergreen:run']
8
-
9
-
10
- desc 'run Rspec specs'
11
- task :spec do
12
- sh 'rspec spec'
13
- end
14
-
15
-
16
- namespace :evergreen do
17
- desc 'run Evergreen specs'
18
- task :run do
19
- sh 'evergreen run'
20
- end
21
-
22
- desc 'start an Evergreen server'
23
- task :serve do
24
- sh 'evergreen serve'
25
- end
26
- end
27
-
28
-
29
- namespace :travis do
30
- desc 'Prepares evergreen and JS files for Travis CI'
31
- task :prepare do
32
- # Prepare directories
33
- sh "mkdir -p public/javascripts/vendor"
34
- sh "mkdir -p public/javascripts/firehose"
35
-
36
- # Precompile coffeescript
37
- Dir.glob 'lib/assets/javascripts/**/*.js.coffee' do |coffee_file|
38
- dest = coffee_file.gsub( 'lib/assets/', 'public/' ).gsub '.js.coffee', '.js'
39
-
40
- File.open dest, 'w' do |file|
41
- file.write ::CoffeeScript.compile File.read coffee_file
42
- end
43
- end
44
-
45
- # Copy JS vendor files into public
46
- Dir.glob [
47
- 'spec/javascripts/support/*.js',
48
- 'lib/assets/javascripts/vendor/*.js'
49
- ] do |js_file|
50
- sh "cp #{js_file} public/javascripts/vendor"
51
- end
52
- end
53
- end
data/bin/firehose DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
-
5
- $:.unshift File.expand_path('../../lib', __FILE__)
6
-
7
- require 'firehose'
8
-
9
- Firehose::CLI.start