message_bus 3.3.6 → 4.0.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.
- checksums.yaml +4 -4
- data/.eslintrc.js +3 -2
- data/.github/workflows/ci.yml +79 -32
- data/.prettierrc +1 -0
- data/CHANGELOG +104 -53
- data/DEV.md +0 -2
- data/Gemfile +0 -27
- data/LICENSE +1 -1
- data/README.md +40 -62
- data/Rakefile +31 -26
- data/assets/message-bus-ajax.js +3 -3
- data/bench/codecs/marshal.rb +1 -1
- data/bench/codecs/packed_string.rb +1 -1
- data/docker-compose.yml +1 -1
- data/examples/bench/bench.lua +2 -2
- data/lib/message_bus/backends/base.rb +8 -3
- data/lib/message_bus/backends/memory.rb +6 -0
- data/lib/message_bus/backends/postgres.rb +29 -16
- data/lib/message_bus/backends/redis.rb +11 -2
- data/lib/message_bus/client.rb +6 -7
- data/lib/message_bus/connection_manager.rb +1 -1
- data/lib/message_bus/distributed_cache.rb +3 -1
- data/lib/message_bus/http_client.rb +2 -2
- data/lib/message_bus/rack/middleware.rb +6 -6
- data/lib/message_bus/rack/thin_ext.rb +2 -1
- data/lib/message_bus/version.rb +1 -1
- data/lib/message_bus.rb +47 -77
- data/message_bus.gemspec +21 -3
- data/package-lock.json +1575 -23
- data/package.json +9 -7
- data/spec/assets/SpecHelper.js +6 -5
- data/spec/assets/message-bus.spec.js +9 -6
- data/spec/helpers.rb +23 -7
- data/spec/integration/http_client_spec.rb +1 -1
- data/spec/lib/fake_async_middleware.rb +1 -0
- data/spec/lib/message_bus/backend_spec.rb +15 -46
- data/spec/lib/message_bus/client_spec.rb +7 -6
- data/spec/lib/message_bus/connection_manager_spec.rb +4 -0
- data/spec/lib/message_bus/distributed_cache_spec.rb +5 -7
- data/spec/lib/message_bus/multi_process_spec.rb +21 -10
- data/spec/lib/message_bus/rack/middleware_spec.rb +8 -44
- data/spec/lib/message_bus/timer_thread_spec.rb +1 -5
- data/spec/lib/message_bus_spec.rb +22 -9
- data/spec/performance/publish.rb +4 -4
- data/spec/spec_helper.rb +8 -9
- data/spec/support/jasmine-browser.json +16 -0
- data/vendor/assets/javascripts/message-bus-ajax.js +3 -3
- metadata +220 -19
- data/assets/application.jsx +0 -121
- data/assets/babel.min.js +0 -25
- data/assets/react-dom.js +0 -19851
- data/assets/react.js +0 -3029
- data/examples/diagnostics/Gemfile +0 -6
- data/examples/diagnostics/config.ru +0 -22
- data/lib/message_bus/diagnostics.rb +0 -62
- data/lib/message_bus/rack/diagnostics.rb +0 -98
- data/spec/assets/support/jasmine.yml +0 -126
- data/spec/assets/support/jasmine_helper.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65630299cab9aae5df5b4f3131043d42063575978d5a83e9267436bed2b7d729
|
4
|
+
data.tar.gz: 2bd69d120552b01ae82c73a775d065c23575ac623016d2bd2ac25a5ebd637d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
7
|
+
extends: 'eslint:recommended',
|
8
8
|
parserOptions: {
|
9
9
|
ecmaVersion: 2015,
|
10
|
-
sourceType:
|
10
|
+
sourceType: 'module',
|
11
11
|
},
|
12
12
|
rules: {},
|
13
|
+
ignorePatterns: ['/vendor', '/doc', '/assets/jquery-1.8.2.js'],
|
13
14
|
};
|
data/.github/workflows/ci.yml
CHANGED
@@ -1,54 +1,101 @@
|
|
1
|
-
name:
|
1
|
+
name: CI
|
2
2
|
|
3
3
|
on:
|
4
|
-
pull_request:
|
5
4
|
push:
|
6
5
|
branches:
|
7
|
-
-
|
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:
|
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
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
47
|
+
|
48
|
+
- uses: ruby/setup-ruby@v1
|
33
49
|
with:
|
34
50
|
ruby-version: ${{ matrix.ruby }}
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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
|
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
|
-
|
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
|
-
|
66
|
-
|
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
|
-
|
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
|
-
|
151
|
-
|
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
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
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
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
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: `
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
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
|
-
|
365
|
-
|
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
|
-
-
|
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
|
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:
|
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
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.
|