message_bus 3.3.6 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.js +3 -2
  3. data/.github/workflows/ci.yml +79 -32
  4. data/.prettierrc +1 -0
  5. data/CHANGELOG +104 -53
  6. data/DEV.md +0 -2
  7. data/Gemfile +0 -27
  8. data/LICENSE +1 -1
  9. data/README.md +40 -62
  10. data/Rakefile +31 -26
  11. data/assets/message-bus-ajax.js +3 -3
  12. data/bench/codecs/marshal.rb +1 -1
  13. data/bench/codecs/packed_string.rb +1 -1
  14. data/docker-compose.yml +1 -1
  15. data/examples/bench/bench.lua +2 -2
  16. data/lib/message_bus/backends/base.rb +8 -3
  17. data/lib/message_bus/backends/memory.rb +6 -0
  18. data/lib/message_bus/backends/postgres.rb +29 -16
  19. data/lib/message_bus/backends/redis.rb +11 -2
  20. data/lib/message_bus/client.rb +6 -7
  21. data/lib/message_bus/connection_manager.rb +1 -1
  22. data/lib/message_bus/distributed_cache.rb +3 -1
  23. data/lib/message_bus/http_client.rb +2 -2
  24. data/lib/message_bus/rack/middleware.rb +6 -6
  25. data/lib/message_bus/rack/thin_ext.rb +2 -1
  26. data/lib/message_bus/version.rb +1 -1
  27. data/lib/message_bus.rb +47 -77
  28. data/message_bus.gemspec +21 -3
  29. data/package-lock.json +1575 -23
  30. data/package.json +9 -7
  31. data/spec/assets/SpecHelper.js +6 -5
  32. data/spec/assets/message-bus.spec.js +9 -6
  33. data/spec/helpers.rb +23 -7
  34. data/spec/integration/http_client_spec.rb +1 -1
  35. data/spec/lib/fake_async_middleware.rb +1 -0
  36. data/spec/lib/message_bus/backend_spec.rb +15 -46
  37. data/spec/lib/message_bus/client_spec.rb +7 -6
  38. data/spec/lib/message_bus/connection_manager_spec.rb +4 -0
  39. data/spec/lib/message_bus/distributed_cache_spec.rb +5 -7
  40. data/spec/lib/message_bus/multi_process_spec.rb +21 -10
  41. data/spec/lib/message_bus/rack/middleware_spec.rb +8 -44
  42. data/spec/lib/message_bus/timer_thread_spec.rb +1 -5
  43. data/spec/lib/message_bus_spec.rb +22 -9
  44. data/spec/performance/publish.rb +4 -4
  45. data/spec/spec_helper.rb +8 -9
  46. data/spec/support/jasmine-browser.json +16 -0
  47. data/vendor/assets/javascripts/message-bus-ajax.js +3 -3
  48. metadata +220 -19
  49. data/assets/application.jsx +0 -121
  50. data/assets/babel.min.js +0 -25
  51. data/assets/react-dom.js +0 -19851
  52. data/assets/react.js +0 -3029
  53. data/examples/diagnostics/Gemfile +0 -6
  54. data/examples/diagnostics/config.ru +0 -22
  55. data/lib/message_bus/diagnostics.rb +0 -62
  56. data/lib/message_bus/rack/diagnostics.rb +0 -98
  57. data/spec/assets/support/jasmine.yml +0 -126
  58. data/spec/assets/support/jasmine_helper.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52ac95c63b3775df984e4900aff333c2ea9f9bab7e79d16b85909048247fb709
4
- data.tar.gz: 879fd243f8947150fe8a31307d023b6ca719192568e0def45255dfdddaf1e34f
3
+ metadata.gz: 65630299cab9aae5df5b4f3131043d42063575978d5a83e9267436bed2b7d729
4
+ data.tar.gz: 2bd69d120552b01ae82c73a775d065c23575ac623016d2bd2ac25a5ebd637d6f
5
5
  SHA512:
6
- metadata.gz: fe7252d6965628dd75027af80f775126394e6b3a81be01fd03f538f17fe5e7874e997cea552ee2e92d91b7ee47d17059755e7df995c5b8bab24049ce2746e0a8
7
- data.tar.gz: 2c4ef234bab5ee1701b5bb2d7362929128855dda113a2531dd35f025b9d2be11a2c18a287aa25731e73a9e8f82af898e2f7725a7c9ea4200a390eaff633b4098
6
+ metadata.gz: 65a5d250126fc935053dfffef037baaf780678764ac95e4924603b901016f82b451a79a51f18fc699f2cfd8006cb805cd4887d206c12ca68ac68f059f1f13409
7
+ data.tar.gz: 2ebcc465985827a16866a948690a7bb4c03252050c8bfb1ee458809c6f0eda8c8fd581ba2f9bb1b496d3c7952456a11ad6ac51dd63e69c465238cffa17d7c2da
data/.eslintrc.js CHANGED
@@ -4,10 +4,11 @@ module.exports = {
4
4
  browser: true,
5
5
  es2021: false,
6
6
  },
7
- extends: "eslint:recommended",
7
+ extends: 'eslint:recommended',
8
8
  parserOptions: {
9
9
  ecmaVersion: 2015,
10
- sourceType: "module",
10
+ sourceType: 'module',
11
11
  },
12
12
  rules: {},
13
+ ignorePatterns: ['/vendor', '/doc', '/assets/jquery-1.8.2.js'],
13
14
  };
@@ -1,54 +1,101 @@
1
- name: Message Bus Tests
1
+ name: CI
2
2
 
3
3
  on:
4
- pull_request:
5
4
  push:
6
5
  branches:
7
- - master
8
-
9
- env:
10
- PGHOST: localhost
11
- PGPORT: 5432
12
- PGPASSWORD: postgres
13
- PGUSER: postgres
6
+ - main
7
+ pull_request:
14
8
 
15
9
  jobs:
16
10
  build:
17
11
  runs-on: ubuntu-latest
18
- name: Ruby ${{ matrix.ruby }}
12
+ name: Ruby ${{ matrix.ruby }} (redis ${{ matrix.redis }})
13
+ timeout-minutes: 10
14
+
15
+ env:
16
+ PGHOST: localhost
17
+ PGPASSWORD: postgres
18
+ PGUSER: postgres
19
+
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ ruby: [2.6, 2.7, 3.0]
24
+ redis: [5, 6]
25
+
19
26
  services:
20
27
  postgres:
21
- image: postgres:9.4
28
+ image: postgres:14
22
29
  env:
30
+ POSTGRES_DB: message_bus_test
23
31
  POSTGRES_PASSWORD: postgres
24
32
  ports:
25
33
  - 5432:5432
26
34
  options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
27
- strategy:
28
- matrix:
29
- ruby: ["2.7", "2.6", "2.5"]
35
+ redis:
36
+ image: ${{ format('redis:{0}', matrix.redis) }}
37
+ ports:
38
+ - 6379:6379
39
+ options: >-
40
+ --health-cmd "redis-cli ping"
41
+ --health-interval 10s
42
+ --health-timeout 5s
43
+ --health-retries 5
44
+
30
45
  steps:
31
46
  - uses: actions/checkout@v2
32
- - uses: actions/setup-ruby@v1
47
+
48
+ - uses: ruby/setup-ruby@v1
33
49
  with:
34
50
  ruby-version: ${{ matrix.ruby }}
35
- - name: Bundler cache
36
- uses: actions/cache@v2
37
- with:
38
- path: vendor/bundle
39
- key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
40
- restore-keys: |
41
- ${{ runner.os }}-${{ matrix.ruby }}-gems-
42
- - name: Create Database
43
- run: |
44
- createdb message_bus_test
45
- - name: Setup redis
46
- uses: shogo82148/actions-setup-redis@v1
51
+ bundler-cache: true
52
+
53
+ - name: Set up Node.js
54
+ uses: actions/setup-node@v2
47
55
  with:
48
- redis-version: '5.x'
49
- - name: Setup gems
50
- run: |
51
- bundle config path vendor/bundle
52
- bundle install --jobs 4
56
+ node-version: 16
57
+ cache: npm
58
+
59
+ - name: Setup npm
60
+ run: npm install
61
+
53
62
  - name: Tests
63
+ env:
64
+ TESTOPTS: --verbose
54
65
  run: bundle exec rake
66
+ timeout-minutes: 3
67
+
68
+ - name: Linting
69
+ run: npx eslint .
70
+
71
+ publish:
72
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
73
+ needs: build
74
+ runs-on: ubuntu-latest
75
+
76
+ steps:
77
+ - uses: actions/checkout@v2
78
+
79
+ - name: Release gem
80
+ uses: discourse/publish-rubygems-action@v2
81
+ id: publish-gem
82
+ env:
83
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
84
+ GIT_EMAIL: team@discourse.org
85
+ GIT_NAME: discoursebot
86
+
87
+ - name: Update package version
88
+ if: steps.publish-gem.outputs.new_version == 'true'
89
+ run: |
90
+ VERSION=$(ruby -r './lib/message_bus/version' -e 'puts MessageBus::VERSION')
91
+ sed -i "s/0.0.0-version-placeholder/$VERSION/" package.json
92
+ git config --global user.email "ci@ci.invalid"
93
+ git config --global user.name "Discourse CI"
94
+ git add package.json
95
+ git commit -m 'bump'
96
+
97
+ - name: Publish package
98
+ uses: JS-DevTools/npm-publish@v1
99
+ if: steps.publish-gem.outputs.new_version == 'true'
100
+ with:
101
+ token: ${{ secrets.NPM_TOKEN }}
data/.prettierrc ADDED
@@ -0,0 +1 @@
1
+ {}
data/CHANGELOG CHANGED
@@ -1,10 +1,39 @@
1
+ 11-01-2022
2
+
3
+ - Version 4.0.0
4
+
5
+ - DEV: Remove backend diagnostics
6
+ - DEV: Rename reliable_pub_sub to backend_instance
7
+ - FIX: `destroy` following `after_fork` could thread lock
8
+
9
+ 31-12-2021
10
+
11
+ - Version 3.4.0
12
+
13
+ - FEATURE: Remove process auto-termination on missed keepalives
14
+
15
+ 20-12-2021
16
+
17
+ - Version 3.3.8
18
+
19
+ - FIX: Restore dist js files to fix a regression in 3.3.7
20
+ - FIX: Stop various thread/pg connection leaks
21
+ - DEV: Fix ruby warnings
22
+
23
+ 15-12-2021
24
+
25
+ - Version 3.3.7
26
+
27
+ - FIX: Prevent simple polling from clobbering the session
28
+ - SECURITY: Fix path traversal on diagnostics route.
29
+
1
30
  31-05-2021
2
31
 
3
32
  - Version 3.3.6
4
33
 
5
34
  - FEATURE: Introduce support for transport codecs
6
35
  - FIX: event subscription leak in JS after start/stop/start sequence
7
- - FEATURE: MessageBus.onVisibilityChange() can be used to trigger a visiblity change check by hand
36
+ - FEATURE: MessageBus.onVisibilityChange() can be used to trigger a visibility change check by hand
8
37
 
9
38
  28-04-2021
10
39
 
@@ -56,14 +85,14 @@
56
85
 
57
86
  - Version 3.3.0
58
87
 
59
- - FEATURE: `MessageBus.base_route=` to alter the route that message bus will listen on.
88
+ - FEATURE: `MessageBus.base_route=` to alter the route that message bus will listen on.
60
89
 
61
90
  07-05-2020
62
91
 
63
92
  - Version 3.2.0
64
93
 
65
- - FIX: compatability with Rails 6.0.3, note: apps without ActionDispatch::Flash may stop working after this upgrade
66
- to correct this disable middleware injection with `config.skip_message_bus_middleware = true` and configure middleware by hand with `app.middleware.use(MessageBus::Rack::Middleware)`
94
+ - FIX: compatibility with Rails 6.0.3, note: apps without ActionDispatch::Flash may stop working after this upgrade
95
+ to correct this disable middleware injection with `config.skip_message_bus_middleware = true` and configure middleware by hand with `app.middleware.use(MessageBus::Rack::Middleware)`
67
96
 
68
97
  28-04-2020
69
98
 
@@ -98,7 +127,6 @@
98
127
 
99
128
  - FIX: In the redis backend make the `is_readonly?` method compatible with the redis gem both pre and post v4.0 when the `client` attribute was removed
100
129
 
101
-
102
130
  30-04-2019
103
131
 
104
132
  - Version 2.2.1
@@ -129,7 +157,7 @@
129
157
  - Version 2.2.0.pre
130
158
 
131
159
  - FIX: In redis backend we now expire the key used to track channel id this can cause a redis key leak
132
- with large amounts of subscriptions that go away
160
+ with large amounts of subscriptions that go away
133
161
  - FEATURE: Much extra implementation documentation, and some improvements to usage documentation.
134
162
  - FEATURE: Improvements to development workflow:
135
163
  - Fully docker-based development and testing, with no other dependencies.
@@ -146,50 +174,53 @@
146
174
  - Supports setting backlog size on publication for memory/postgres
147
175
  - FEATURE: `MessageBus.off` now prevents the server subscription from starting up.
148
176
  - FEATURE: Trims unused parts of the public API:
177
+
149
178
  - Methods removed:
150
- * ConnectionManager#stats (never used and the ConnectionManager is not exposed to application code)
151
- * Client#cancel (effectively duplicate of Client#close and the Client is only available via the ConnectionManager, thus not available to application code)
179
+
180
+ - ConnectionManager#stats (never used and the ConnectionManager is not exposed to application code)
181
+ - Client#cancel (effectively duplicate of Client#close and the Client is only available via the ConnectionManager, thus not available to application code)
152
182
 
153
183
  - Methods made private:
154
- * MessageBus::Implementation#encode_channel_name
155
- * MessageBus::Implementation#decode_channel_name
156
- * Client#in_async?
157
- * Client#ensure_closed!
158
- * ConnectionManager#subscribe_client
159
- * Diagnostics.full_process_path
160
- * Diagnostics.hostname
161
- * MessageBus::Rack::Diagnostics#js_asset
162
- * MessageBus::Rack::Diagnostics#generate_script_tag
163
- * MessageBus::Rack::Diagnostics#file_hash
164
- * MessageBus::Rack::Diagnostics#asset_contents
165
- * MessageBus::Rack::Diagnostics#asset_path
166
- * MessageBus::Rack::Diagnostics#index
167
- * MessageBus::Rack::Diagnostics#translate_handlebars
168
- * MessageBus::Rack::Diagnostics#indent
169
- * MessageBus::Rack::Middleware#start_listener
170
- * MessageBus::Rack::Middleware#close_db_connection!
171
- * MessageBus::Rack::Middleware#add_client_with_timeout
184
+
185
+ - MessageBus::Implementation#encode_channel_name
186
+ - MessageBus::Implementation#decode_channel_name
187
+ - Client#in_async?
188
+ - Client#ensure_closed!
189
+ - ConnectionManager#subscribe_client
190
+ - Diagnostics.full_process_path
191
+ - Diagnostics.hostname
192
+ - MessageBus::Rack::Diagnostics#js_asset
193
+ - MessageBus::Rack::Diagnostics#generate_script_tag
194
+ - MessageBus::Rack::Diagnostics#file_hash
195
+ - MessageBus::Rack::Diagnostics#asset_contents
196
+ - MessageBus::Rack::Diagnostics#asset_path
197
+ - MessageBus::Rack::Diagnostics#index
198
+ - MessageBus::Rack::Diagnostics#translate_handlebars
199
+ - MessageBus::Rack::Diagnostics#indent
200
+ - MessageBus::Rack::Middleware#start_listener
201
+ - MessageBus::Rack::Middleware#close_db_connection!
202
+ - MessageBus::Rack::Middleware#add_client_with_timeout
172
203
 
173
204
  - Methods switched from protected to private:
174
- * MessageBus::Implementation#global?
175
- * MessageBus::Implementation#decode_message!
176
- * MessageBus::Implementation#replay_backlog
177
- * MessageBus::Implementation#subscribe_impl
178
- * MessageBus::Implementation#unsubscribe_impl
179
- * MessageBus::Implementation#ensure_subscriber_thread
180
- * MessageBus::Implementation#new_subscriber_thread
181
- * MessageBus::Implementation#global_subscribe_thread
182
- * MessageBus::Implementation#multi_each
183
- * Client#write_headers
184
- * Client#write_chunk
185
- * Client#write_and_close
186
- * Client#messages_to_json
205
+ - MessageBus::Implementation#global?
206
+ - MessageBus::Implementation#decode_message!
207
+ - MessageBus::Implementation#replay_backlog
208
+ - MessageBus::Implementation#subscribe_impl
209
+ - MessageBus::Implementation#unsubscribe_impl
210
+ - MessageBus::Implementation#ensure_subscriber_thread
211
+ - MessageBus::Implementation#new_subscriber_thread
212
+ - MessageBus::Implementation#global_subscribe_thread
213
+ - MessageBus::Implementation#multi_each
214
+ - Client#write_headers
215
+ - Client#write_chunk
216
+ - Client#write_and_close
217
+ - Client#messages_to_json
187
218
 
188
219
  15-10-2018
189
220
 
190
221
  - Version 2.1.6
191
222
 
192
- - FEATURE: `MesssageBus.publish` accepts option `site_id` to publish to a site
223
+ - FEATURE: `MessageBus.publish` accepts option `site_id` to publish to a site
193
224
  - FEATURE: Added MessageBus::DistributedCache for cross process caching
194
225
  - PERF: Use monotonic times in timer thread
195
226
  - FEATURE: min poll interval is now configurable client side
@@ -212,7 +243,7 @@
212
243
  - Version 2.1.2
213
244
 
214
245
  - FEATURE: minHiddenPollInterval set to 1500ms out of the box, ensures we never do hidden tab
215
- polls at a high rate if tons of tabs are open
246
+ polls at a high rate if tons of tabs are open
216
247
  - FEATURE: added random 500ms to delayed polls to increase tab entropy
217
248
 
218
249
  18-12-2017
@@ -226,7 +257,7 @@
226
257
  - Version 2.1.0
227
258
 
228
259
  - FEATURE: you can now lookup last N messages on channel on subscribe from JavaScript
229
- Subscribe at position (-1 - numberOfMessages) from the client
260
+ Subscribe at position (-1 - numberOfMessages) from the client
230
261
 
231
262
  24-11-2017
232
263
 
@@ -246,14 +277,13 @@
246
277
  - Version 2.0.7
247
278
 
248
279
  - Fix/Feature: use LUA script for publishing to bus, this eliminates a race condition
249
- and ensures that we are never stuck in a multi transaction by mistake
250
-
280
+ and ensures that we are never stuck in a multi transaction by mistake
251
281
 
252
282
  29-09-2017
253
283
 
254
284
  - Version 2.0.6
255
285
 
256
- - Fix: correct after_fork so it correctly disconnnects redis
286
+ - Fix: correct after_fork so it correctly disconnects redis
257
287
  - Fix: correct message_bus #destroy used in tests to clean up spec (deadlock)
258
288
  - Fix: deliver backlog unconditionally when polling (and not long polling)
259
289
 
@@ -275,12 +305,10 @@
275
305
  - Version 2.0.2
276
306
  - Feature: Add on_middleware_error callback for remapping middleware errors to HTTP results
277
307
 
278
-
279
308
  25-07-2016
280
309
 
281
310
  - Feature: Add JavaScript MessageBus.status() function
282
311
 
283
-
284
312
  21-06-2016
285
313
 
286
314
  - Version 2.0.1
@@ -323,7 +351,7 @@
323
351
 
324
352
  - Version 2.0.0.beta.6
325
353
 
326
- - Feature: Support standalone opertion without depending on jQuery @nathanstitt
354
+ - Feature: Support standalone operation without depending on jQuery @nathanstitt
327
355
  - Feature: Support a noconflict mode @nathanstitt
328
356
  - Feature: Support JSON POST payload @nathanstitt
329
357
 
@@ -361,97 +389,116 @@
361
389
 
362
390
  - Version 1.1.1
363
391
  - Fix: In multisite config there was no way to specify site for last_id or backlog
364
- to resolve overrides were added to #last_id and #backlog, MessageBus::Client now
365
- uses the new overrides
392
+ to resolve overrides were added to #last_id and #backlog, MessageBus::Client now
393
+ uses the new overrides
366
394
 
367
395
  07-12-2015
368
396
 
369
397
  - Version 1.1.0
370
398
  - Fix: keep track of client sequence on server, abandon old subscribes
371
399
  - Fix: rare concurrency issue when subscribing concurrently
372
- - Fature: remove most jQuery dependency from message-bus.js
400
+ - Feature: remove most jQuery dependency from message-bus.js
373
401
 
374
402
  09-07-2015
403
+
375
404
  - Version 1.0.16
376
405
  - Fix: correct edge cases around keepalive checks on bus
377
406
 
378
407
  09-07-2015
408
+
379
409
  - Version 1.0.15
380
410
  - Feature: MessageBus.reliable_pub_sub.max_backlog_age (in secs) configurable (default to 7 days)
381
411
  - Fix: API for MessageBus.backlog("/bla") was returning global backlog by mistake
382
412
  - Change: Max global backlog size reduced to 2000 elements
383
413
 
384
414
  08-06-2015
415
+
385
416
  - Version 1.0.14
386
417
  - Fix: we can not use Thread#kill best keepalive can do is terminate process cleanly
387
418
  - Feature: you can opt-out of keepalive with MessageBus.keepalive_timeout = 0
388
419
 
389
420
  08-06-2015
421
+
390
422
  - Version 1.0.13
391
423
  - Fix: on global subscribe reconnect replay missed messages
392
424
  - Feature: keepalive tests for global subscribe, catches hung redis connections
393
425
 
394
426
  28-05-2015
427
+
395
428
  - Version 1.0.12
396
- - Feature: Support client_id targetted message
429
+ - Feature: Support client_id targeted message
397
430
 
398
431
  06-05-2015
432
+
399
433
  - Version 1.0.11
400
434
  - Fix: race condition in TimerThread
401
435
 
402
436
  01-05-2015
437
+
403
438
  - Version: 1.0.10
404
439
  - Feature: no longer depends on EventMachine (only used for Thin backend)
405
- - Feature: realiable pub sub will queue messages in memory if redis is readonly, configurable
440
+ - Feature: reliable pub sub will queue messages in memory if redis is readonly, configurable
406
441
  - Fix: if redis is flushed we will continue to deliver messages
407
442
 
408
443
  23-03-2015
444
+
409
445
  - Version 1.0.9
410
446
  - Fix: inherit off StandardError not Exception for all exceptions raised
411
447
 
412
448
  20-03-2015
449
+
413
450
  - Version 1.0.8
414
451
  - Fix: aggressive short polling in background
415
452
 
416
453
  16-03-2015
454
+
417
455
  - Version 1.0.7
418
456
  - Feature: added pause and resume methods
419
457
 
420
458
  03-02-2015
459
+
421
460
  - Version 1.0.6
422
461
  - Fix: global backlog not truncating correctly
423
462
 
424
463
  23-09-2014
464
+
425
465
  - Version 1.0.5
426
466
  - Fix: missing custom headers from long polls
427
467
 
428
468
  23-09-2014
469
+
429
470
  - Version 1.0.4
430
471
  - Change: MessageBus.access_control_allow_origin_lookup to extra_response_headers_lookup
431
472
 
432
473
  23-09-2014
474
+
433
475
  - Version 1.0.3
434
476
  - Change: MessageBus.access_control_allow_origin to MessageBus.access_control_allow_origin_lookup
435
477
 
436
478
  23-09-2014
479
+
437
480
  - Version 1.0.2
438
481
  - Feature: MessageBus.access_control_allow_origin to control origin header
439
482
 
440
483
  23-09-2014
484
+
441
485
  - Version 1.0.1
442
486
  - Feature: $.ajax dependency can be passed in.
443
487
  - Feature: unsubscribe accepts a second param for the function to unsubscribe.
444
488
 
445
489
  22-09-2014
490
+
446
491
  - Version 1.0.0
447
492
  - Feature: add backgroundCallbackInterval - interval to send polls when page is in the background
448
493
  - Feature: issue a long poll as soon as page moves into the foreground
449
494
 
450
495
  11-08-2014
496
+
451
497
  - Version 0.9.5
452
498
  - Fix: release db connection a lot earlier for long polling (rails defer closes)
453
499
 
454
500
  13-01-2014
501
+
455
502
  - Version 0.9.4
456
503
  - Added support for /global/ channel to publish messages across a multisite
457
504
  - Cleaned up test harness so it uses local bus as opposed to global
@@ -460,19 +507,23 @@
460
507
  - ensure_reactor could say the reactor is running, but it was not, on first call
461
508
 
462
509
  06-12-2013
510
+
463
511
  - Version 0.9.3.2
464
512
  - Fix permissions in gem
465
513
 
466
514
  05-12-2013
515
+
467
516
  - Version 0.9.3.1
468
517
  - Add MessageBus.diagnostics() for diagnosing bus issues client side
469
518
  - Add more robustness to JavaScript, if callbacks used to fail they would halt the chain
470
519
 
471
520
  03-12-2013
521
+
472
522
  - Version 0.9.3
473
523
  - Remove thin dependency
474
524
  - Improve robustness under failure conditions
475
525
 
476
526
  30-09-2013
527
+
477
528
  - Fix failures in Ruby 1.9
478
529
  - Set up rack hijack by default in light of passengers new setting
data/DEV.md CHANGED
@@ -5,5 +5,3 @@
5
5
  2. Log in to npm `yarn login`
6
6
 
7
7
  3. Publish: `yarn publish`
8
-
9
-
data/Gemfile CHANGED
@@ -3,30 +3,3 @@ source 'https://rubygems.org'
3
3
 
4
4
  # Specify your gem's dependencies in message_bus.gemspec
5
5
  gemspec
6
-
7
- group :test do
8
- gem 'minitest'
9
- gem 'minitest-hooks'
10
- gem 'minitest-global_expectations'
11
- gem 'rake'
12
- gem 'http_parser.rb'
13
- gem 'thin'
14
- gem 'rack-test', require: 'rack/test'
15
- gem 'jasmine'
16
- gem 'puma'
17
- gem 'm'
18
- end
19
-
20
- group :test, :development do
21
- gem 'byebug'
22
- gem 'oj'
23
- end
24
-
25
- group :development do
26
- gem 'yard'
27
- gem 'rubocop-discourse', require: false
28
- gem 'rubocop-rspec', require: false
29
- end
30
-
31
- gem 'rack'
32
- gem 'concurrent-ruby' # for distributed-cache
data/LICENSE CHANGED
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
19
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
20
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
21
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.