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.
- 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
data/lib/message_bus/version.rb
CHANGED
data/lib/message_bus.rb
CHANGED
@@ -100,14 +100,14 @@ module MessageBus::Implementation
|
|
100
100
|
configure(long_polling_enabled: val)
|
101
101
|
end
|
102
102
|
|
103
|
-
# @param [Integer] val The number of
|
103
|
+
# @param [Integer] val The number of simultaneous clients we can service;
|
104
104
|
# will revert to polling if we are out of slots
|
105
105
|
# @return [void]
|
106
106
|
def max_active_clients=(val)
|
107
107
|
configure(max_active_clients: val)
|
108
108
|
end
|
109
109
|
|
110
|
-
# @return [Integer] The number of
|
110
|
+
# @return [Integer] The number of simultaneous clients we can service;
|
111
111
|
# will revert to polling if we are out of slots. Defaults to 1000 if not
|
112
112
|
# explicitly set.
|
113
113
|
def max_active_clients
|
@@ -275,7 +275,7 @@ module MessageBus::Implementation
|
|
275
275
|
# set, defaults to false unless we're in Rails test or development mode.
|
276
276
|
def allow_broadcast?
|
277
277
|
@config[:allow_broadcast] ||=
|
278
|
-
if defined? ::Rails
|
278
|
+
if defined? ::Rails.env
|
279
279
|
::Rails.env.test? || ::Rails.env.development?
|
280
280
|
else
|
281
281
|
false
|
@@ -285,7 +285,7 @@ module MessageBus::Implementation
|
|
285
285
|
# @param [MessageBus::Codec::Base] codec used to encode and decode Message payloads
|
286
286
|
# @return [void]
|
287
287
|
def transport_codec=(codec)
|
288
|
-
configure(
|
288
|
+
configure(transport_codec: codec)
|
289
289
|
end
|
290
290
|
|
291
291
|
# @return [MessageBus::Codec::Base] codec used to encode and decode Message payloads
|
@@ -338,7 +338,7 @@ module MessageBus::Implementation
|
|
338
338
|
# @option opts [Array<String,Integer>] :group_ids (`nil`) the group IDs to which the message should be available. If nil, available to all.
|
339
339
|
# @option opts [String] :site_id (`nil`) the site ID to scope the message to; used for hosting multiple
|
340
340
|
# applications or instances of an application against a single message_bus
|
341
|
-
# @option opts [nil,Integer] :max_backlog_age the longest amount of time a message may live in a backlog before
|
341
|
+
# @option opts [nil,Integer] :max_backlog_age the longest amount of time a message may live in a backlog before being removed, in seconds
|
342
342
|
# @option opts [nil,Integer] :max_backlog_size the largest permitted size (number of messages) for the channel backlog; beyond this capacity, old messages will be dropped
|
343
343
|
#
|
344
344
|
# @return [Integer] the channel-specific ID the message was given
|
@@ -527,7 +527,7 @@ module MessageBus::Implementation
|
|
527
527
|
end
|
528
528
|
|
529
529
|
# Stops listening for publications and stops executing scheduled tasks.
|
530
|
-
# Mostly used in tests to
|
530
|
+
# Mostly used in tests to destroy entire bus.
|
531
531
|
# @return [void]
|
532
532
|
def destroy
|
533
533
|
return if @destroyed
|
data/message_bus.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# -*- encoding: utf-8 -*-
|
3
2
|
|
4
3
|
require File.expand_path('../lib/message_bus/version', __FILE__)
|
5
4
|
|
@@ -8,17 +7,33 @@ Gem::Specification.new do |gem|
|
|
8
7
|
gem.email = ["sam.saffron@gmail.com"]
|
9
8
|
gem.description = %q{A message bus for rack}
|
10
9
|
gem.summary = %q{}
|
11
|
-
gem.homepage = "https://github.com/
|
10
|
+
gem.homepage = "https://github.com/discourse/message_bus"
|
12
11
|
gem.license = "MIT"
|
13
|
-
gem.files = `git ls-files`.split($\)
|
14
|
-
["vendor/assets/javascripts/message-bus.js", "vendor/assets/javascripts/message-bus-ajax.js"]
|
12
|
+
gem.files = `git ls-files`.split($\)
|
15
13
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
16
14
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
15
|
gem.name = "message_bus"
|
18
16
|
gem.require_paths = ["lib"]
|
19
17
|
gem.version = MessageBus::VERSION
|
20
|
-
gem.required_ruby_version = ">= 2.
|
18
|
+
gem.required_ruby_version = ">= 2.6.0"
|
19
|
+
|
21
20
|
gem.add_runtime_dependency 'rack', '>= 1.1.3'
|
21
|
+
|
22
22
|
gem.add_development_dependency 'redis'
|
23
23
|
gem.add_development_dependency 'pg'
|
24
|
+
gem.add_development_dependency 'concurrent-ruby' # for distributed-cache
|
25
|
+
gem.add_development_dependency 'minitest'
|
26
|
+
gem.add_development_dependency 'minitest-hooks'
|
27
|
+
gem.add_development_dependency 'minitest-global_expectations'
|
28
|
+
gem.add_development_dependency 'rake'
|
29
|
+
gem.add_development_dependency 'http_parser.rb'
|
30
|
+
gem.add_development_dependency 'thin'
|
31
|
+
gem.add_development_dependency 'rack-test'
|
32
|
+
gem.add_development_dependency 'puma'
|
33
|
+
gem.add_development_dependency 'm'
|
34
|
+
gem.add_development_dependency 'byebug'
|
35
|
+
gem.add_development_dependency 'oj'
|
36
|
+
gem.add_development_dependency 'yard'
|
37
|
+
gem.add_development_dependency 'rubocop-discourse'
|
38
|
+
gem.add_development_dependency 'rubocop-rspec'
|
24
39
|
end
|