message_bus 3.3.6 → 3.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.js +10 -2
  3. data/.github/workflows/ci.yml +36 -19
  4. data/CHANGELOG +15 -8
  5. data/DEV.md +0 -2
  6. data/Gemfile +0 -27
  7. data/LICENSE +1 -1
  8. data/README.md +10 -10
  9. data/Rakefile +12 -7
  10. data/assets/message-bus-ajax.js +3 -3
  11. data/bench/codecs/marshal.rb +1 -1
  12. data/bench/codecs/packed_string.rb +1 -1
  13. data/examples/bench/bench.lua +2 -2
  14. data/lib/message_bus/backends/base.rb +3 -3
  15. data/lib/message_bus/backends/postgres.rb +7 -3
  16. data/lib/message_bus/backends/redis.rb +1 -1
  17. data/lib/message_bus/client.rb +3 -7
  18. data/lib/message_bus/connection_manager.rb +1 -1
  19. data/lib/message_bus/distributed_cache.rb +2 -1
  20. data/lib/message_bus/http_client.rb +2 -2
  21. data/lib/message_bus/rack/diagnostics.rb +30 -8
  22. data/lib/message_bus/rack/middleware.rb +6 -0
  23. data/lib/message_bus/rack/thin_ext.rb +1 -1
  24. data/lib/message_bus/version.rb +1 -1
  25. data/lib/message_bus.rb +6 -6
  26. data/message_bus.gemspec +20 -5
  27. data/package-lock.json +1575 -23
  28. data/package.json +7 -2
  29. data/spec/assets/SpecHelper.js +6 -5
  30. data/spec/assets/message-bus.spec.js +9 -6
  31. data/spec/helpers.rb +17 -6
  32. data/spec/integration/http_client_spec.rb +1 -1
  33. data/spec/lib/message_bus/backend_spec.rb +12 -44
  34. data/spec/lib/message_bus/client_spec.rb +6 -6
  35. data/spec/lib/message_bus/distributed_cache_spec.rb +5 -7
  36. data/spec/lib/message_bus/multi_process_spec.rb +1 -1
  37. data/spec/lib/message_bus/rack/middleware_spec.rb +16 -5
  38. data/spec/lib/message_bus_spec.rb +10 -6
  39. data/spec/spec_helper.rb +8 -9
  40. data/spec/support/jasmine-browser.json +16 -0
  41. metadata +220 -14
  42. data/spec/assets/support/jasmine.yml +0 -126
  43. data/spec/assets/support/jasmine_helper.rb +0 -11
  44. data/vendor/assets/javascripts/message-bus-ajax.js +0 -38
  45. 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.6
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-05-31 00:00:00.000000000 Z
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
- - vendor/assets/javascripts/message-bus-ajax.js
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.4.0
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.1.6
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,11 +0,0 @@
1
- # frozen_string_literal: true
2
- Jasmine.configure do |_config|
3
- # patch for travis
4
- if ENV['TRAVIS']
5
- module ::Phantomjs
6
- def self.version
7
- @phantom_version ||= `phantomjs --version`.strip
8
- end
9
- end
10
- end
11
- end
@@ -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);