message_bus 3.3.6 → 3.3.7
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 +10 -2
- data/.github/workflows/ci.yml +36 -19
- data/CHANGELOG +15 -8
- data/DEV.md +0 -2
- data/Gemfile +0 -27
- data/LICENSE +1 -1
- data/README.md +10 -10
- data/Rakefile +12 -7
- data/assets/message-bus-ajax.js +3 -3
- data/bench/codecs/marshal.rb +1 -1
- data/bench/codecs/packed_string.rb +1 -1
- data/examples/bench/bench.lua +2 -2
- data/lib/message_bus/backends/base.rb +3 -3
- data/lib/message_bus/backends/postgres.rb +7 -3
- data/lib/message_bus/backends/redis.rb +1 -1
- data/lib/message_bus/client.rb +3 -7
- data/lib/message_bus/connection_manager.rb +1 -1
- data/lib/message_bus/distributed_cache.rb +2 -1
- data/lib/message_bus/http_client.rb +2 -2
- data/lib/message_bus/rack/diagnostics.rb +30 -8
- data/lib/message_bus/rack/middleware.rb +6 -0
- data/lib/message_bus/rack/thin_ext.rb +1 -1
- data/lib/message_bus/version.rb +1 -1
- data/lib/message_bus.rb +6 -6
- data/message_bus.gemspec +20 -5
- data/package-lock.json +1575 -23
- data/package.json +7 -2
- data/spec/assets/SpecHelper.js +6 -5
- data/spec/assets/message-bus.spec.js +9 -6
- data/spec/helpers.rb +17 -6
- data/spec/integration/http_client_spec.rb +1 -1
- data/spec/lib/message_bus/backend_spec.rb +12 -44
- data/spec/lib/message_bus/client_spec.rb +6 -6
- data/spec/lib/message_bus/distributed_cache_spec.rb +5 -7
- data/spec/lib/message_bus/multi_process_spec.rb +1 -1
- data/spec/lib/message_bus/rack/middleware_spec.rb +16 -5
- data/spec/lib/message_bus_spec.rb +10 -6
- data/spec/spec_helper.rb +8 -9
- data/spec/support/jasmine-browser.json +16 -0
- metadata +220 -14
- data/spec/assets/support/jasmine.yml +0 -126
- data/spec/assets/support/jasmine_helper.rb +0 -11
- data/vendor/assets/javascripts/message-bus-ajax.js +0 -38
- data/vendor/assets/javascripts/message-bus.js +0 -549
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: message_bus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -52,6 +52,216 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: concurrent-ruby
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest-hooks
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest-global_expectations
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: http_parser.rb
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: thin
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rack-test
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: puma
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: m
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: byebug
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: oj
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: yard
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: rubocop-discourse
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rubocop-rspec
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
55
265
|
description: A message bus for rack
|
56
266
|
email:
|
57
267
|
- sam.saffron@gmail.com
|
@@ -127,8 +337,6 @@ files:
|
|
127
337
|
- package.json
|
128
338
|
- spec/assets/SpecHelper.js
|
129
339
|
- spec/assets/message-bus.spec.js
|
130
|
-
- spec/assets/support/jasmine.yml
|
131
|
-
- spec/assets/support/jasmine_helper.rb
|
132
340
|
- spec/fixtures/test/Gemfile
|
133
341
|
- spec/fixtures/test/config.ru
|
134
342
|
- spec/helpers.rb
|
@@ -145,14 +353,13 @@ files:
|
|
145
353
|
- spec/lib/message_bus_spec.rb
|
146
354
|
- spec/performance/publish.rb
|
147
355
|
- spec/spec_helper.rb
|
356
|
+
- spec/support/jasmine-browser.json
|
148
357
|
- vendor/assets/javascripts/.gitignore
|
149
|
-
|
150
|
-
- vendor/assets/javascripts/message-bus.js
|
151
|
-
homepage: https://github.com/SamSaffron/message_bus
|
358
|
+
homepage: https://github.com/discourse/message_bus
|
152
359
|
licenses:
|
153
360
|
- MIT
|
154
361
|
metadata: {}
|
155
|
-
post_install_message:
|
362
|
+
post_install_message:
|
156
363
|
rdoc_options: []
|
157
364
|
require_paths:
|
158
365
|
- lib
|
@@ -160,22 +367,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
160
367
|
requirements:
|
161
368
|
- - ">="
|
162
369
|
- !ruby/object:Gem::Version
|
163
|
-
version: 2.
|
370
|
+
version: 2.6.0
|
164
371
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
372
|
requirements:
|
166
373
|
- - ">="
|
167
374
|
- !ruby/object:Gem::Version
|
168
375
|
version: '0'
|
169
376
|
requirements: []
|
170
|
-
rubygems_version: 3.
|
171
|
-
signing_key:
|
377
|
+
rubygems_version: 3.2.33
|
378
|
+
signing_key:
|
172
379
|
specification_version: 4
|
173
380
|
summary: ''
|
174
381
|
test_files:
|
175
382
|
- spec/assets/SpecHelper.js
|
176
383
|
- spec/assets/message-bus.spec.js
|
177
|
-
- spec/assets/support/jasmine.yml
|
178
|
-
- spec/assets/support/jasmine_helper.rb
|
179
384
|
- spec/fixtures/test/Gemfile
|
180
385
|
- spec/fixtures/test/config.ru
|
181
386
|
- spec/helpers.rb
|
@@ -192,3 +397,4 @@ test_files:
|
|
192
397
|
- spec/lib/message_bus_spec.rb
|
193
398
|
- spec/performance/publish.rb
|
194
399
|
- spec/spec_helper.rb
|
400
|
+
- spec/support/jasmine-browser.json
|
@@ -1,126 +0,0 @@
|
|
1
|
-
# src_files
|
2
|
-
#
|
3
|
-
# Return an array of filepaths relative to src_dir to include before jasmine specs.
|
4
|
-
# Default: []
|
5
|
-
#
|
6
|
-
# EXAMPLE:
|
7
|
-
#
|
8
|
-
# src_files:
|
9
|
-
# - lib/source1.js
|
10
|
-
# - lib/source2.js
|
11
|
-
# - dist/**/*.js
|
12
|
-
#
|
13
|
-
src_files:
|
14
|
-
- assets/message-bus.js
|
15
|
-
- assets/message-bus-ajax.js
|
16
|
-
|
17
|
-
|
18
|
-
# stylesheets
|
19
|
-
#
|
20
|
-
# Return an array of stylesheet filepaths relative to src_dir to include before jasmine specs.
|
21
|
-
# Default: []
|
22
|
-
#
|
23
|
-
# EXAMPLE:
|
24
|
-
#
|
25
|
-
# stylesheets:
|
26
|
-
# - css/style.css
|
27
|
-
# - stylesheets/*.css
|
28
|
-
#
|
29
|
-
# stylesheets:
|
30
|
-
# - stylesheets/**/*.css
|
31
|
-
|
32
|
-
# helpers
|
33
|
-
#
|
34
|
-
# Return an array of filepaths relative to spec_dir to include before jasmine specs.
|
35
|
-
# Default: ["helpers/**/*.js"]
|
36
|
-
#
|
37
|
-
# EXAMPLE:
|
38
|
-
#
|
39
|
-
# helpers:
|
40
|
-
# - helpers/**/*.js
|
41
|
-
#
|
42
|
-
helpers:
|
43
|
-
- 'SpecHelper.js'
|
44
|
-
|
45
|
-
# spec_files
|
46
|
-
#
|
47
|
-
# Return an array of filepaths relative to spec_dir to include.
|
48
|
-
# Default: ["**/*[sS]pec.js"]
|
49
|
-
#
|
50
|
-
# EXAMPLE:
|
51
|
-
#
|
52
|
-
# spec_files:
|
53
|
-
# - **/*[sS]pec.js
|
54
|
-
#
|
55
|
-
spec_files:
|
56
|
-
- '**/*[sS]pec.js'
|
57
|
-
|
58
|
-
# src_dir
|
59
|
-
#
|
60
|
-
# Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
|
61
|
-
# Default: project root
|
62
|
-
#
|
63
|
-
# EXAMPLE:
|
64
|
-
#
|
65
|
-
# src_dir: public
|
66
|
-
#
|
67
|
-
src_dir:
|
68
|
-
|
69
|
-
# spec_dir
|
70
|
-
#
|
71
|
-
# Spec directory path. Your spec_files must be returned relative to this path.
|
72
|
-
# Default: spec/javascripts
|
73
|
-
#
|
74
|
-
# EXAMPLE:
|
75
|
-
#
|
76
|
-
# spec_dir: spec/javascripts
|
77
|
-
#
|
78
|
-
spec_dir: spec/assets
|
79
|
-
|
80
|
-
spec_helper: spec/assets/support/jasmine_helper.rb
|
81
|
-
|
82
|
-
# boot_dir
|
83
|
-
#
|
84
|
-
# Boot directory path. Your boot_files must be returned relative to this path.
|
85
|
-
# Default: Built in boot file
|
86
|
-
#
|
87
|
-
# EXAMPLE:
|
88
|
-
#
|
89
|
-
# boot_dir: spec/javascripts/support/boot
|
90
|
-
#
|
91
|
-
boot_dir:
|
92
|
-
|
93
|
-
# boot_files
|
94
|
-
#
|
95
|
-
# Return an array of filepaths relative to boot_dir to include in order to boot Jasmine
|
96
|
-
# Default: Built in boot file
|
97
|
-
#
|
98
|
-
# EXAMPLE
|
99
|
-
#
|
100
|
-
# boot_files:
|
101
|
-
# - '**/*.js'
|
102
|
-
#
|
103
|
-
boot_files:
|
104
|
-
|
105
|
-
# rack_options
|
106
|
-
#
|
107
|
-
# Extra options to be passed to the rack server
|
108
|
-
# by default, Port and AccessLog are passed.
|
109
|
-
#
|
110
|
-
# This is an advanced options, and left empty by default
|
111
|
-
#
|
112
|
-
# EXAMPLE
|
113
|
-
#
|
114
|
-
# rack_options:
|
115
|
-
# server: 'thin'
|
116
|
-
|
117
|
-
# random
|
118
|
-
#
|
119
|
-
# Run specs in semi-random order.
|
120
|
-
# Default: false
|
121
|
-
#
|
122
|
-
# EXAMPLE:
|
123
|
-
#
|
124
|
-
# random: true
|
125
|
-
#
|
126
|
-
random:
|
@@ -1,38 +0,0 @@
|
|
1
|
-
// A bare-bones implementation of $.ajax that MessageBus will use
|
2
|
-
// as a fallback if jQuery is not present
|
3
|
-
//
|
4
|
-
// Only implements methods & options used by MessageBus
|
5
|
-
(function(global, undefined) {
|
6
|
-
'use strict';
|
7
|
-
if (!global.MessageBus){
|
8
|
-
throw new Error("MessageBus must be loaded before the ajax adapter");
|
9
|
-
}
|
10
|
-
|
11
|
-
global.MessageBus.ajax = function(options){
|
12
|
-
var XHRImpl = (global.MessageBus && global.MessageBus.xhrImplementation) || global.XMLHttpRequest;
|
13
|
-
var xhr = new XHRImpl();
|
14
|
-
xhr.dataType = options.dataType;
|
15
|
-
xhr.open('POST', options.url);
|
16
|
-
for (var name in options.headers){
|
17
|
-
xhr.setRequestHeader(name, options.headers[name]);
|
18
|
-
}
|
19
|
-
xhr.setRequestHeader('Content-Type', 'application/json');
|
20
|
-
if (options.messageBus.chunked){
|
21
|
-
options.messageBus.onProgressListener(xhr);
|
22
|
-
}
|
23
|
-
xhr.onreadystatechange = function(){
|
24
|
-
if (xhr.readyState === 4){
|
25
|
-
var status = xhr.status;
|
26
|
-
if (status >= 200 && status < 300 || status === 304){
|
27
|
-
options.success(xhr.responseText);
|
28
|
-
} else {
|
29
|
-
options.error(xhr, xhr.statusText);
|
30
|
-
}
|
31
|
-
options.complete();
|
32
|
-
}
|
33
|
-
}
|
34
|
-
xhr.send(JSON.stringify(options.data));
|
35
|
-
return xhr;
|
36
|
-
};
|
37
|
-
|
38
|
-
})(window);
|