message_bus 4.5.1 → 4.5.2
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/.github/workflows/ci.yml +4 -2
- data/.gitignore +1 -0
- data/CHANGELOG +13 -0
- data/gemfiles/rack2.gemfile +5 -0
- data/gemfiles/rack3.gemfile +5 -0
- data/lib/message_bus/client.rb +7 -7
- data/lib/message_bus/rack/middleware.rb +4 -4
- data/lib/message_bus/version.rb +1 -1
- data/message_bus.gemspec +2 -4
- data/spec/lib/message_bus/client_spec.rb +3 -1
- data/spec/lib/message_bus/rack/middleware_spec.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e0f8dcac413e4d7ebfd5518440b1bae9311dfee8395d13b9c9a137aed8048689
|
|
4
|
+
data.tar.gz: dd16dc24af70834d8d62ecbc5f570e7790e00c78f876eee3c3b35483e7e576ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a48f71540d916776ee00ea49d651b1e5463ce15c1f4c97b7188550896908a6d67cb90d0e165ea6a607b8e5ef6909f3aa53aa0b06772233b80f1656c79f750f18
|
|
7
|
+
data.tar.gz: a32fb12a213171d4c1bc40c2d55e34f8572bb97ed44b9fccbcf23c0f7844114039175f4ba122ea9d240280e21e57c3edc7da85d82c69012ef98c8575a0b7c457
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -38,10 +38,11 @@ jobs:
|
|
|
38
38
|
|
|
39
39
|
test:
|
|
40
40
|
runs-on: ubuntu-latest
|
|
41
|
-
name: Ruby ${{ matrix.ruby }} (${{ matrix.redis }})
|
|
41
|
+
name: Ruby ${{ matrix.ruby }} (${{ matrix.redis }}, ${{ matrix.rack }})
|
|
42
42
|
timeout-minutes: 10
|
|
43
43
|
|
|
44
44
|
env:
|
|
45
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.rack }}.gemfile
|
|
45
46
|
PGHOST: localhost
|
|
46
47
|
PGPASSWORD: postgres
|
|
47
48
|
PGUSER: postgres
|
|
@@ -50,7 +51,8 @@ jobs:
|
|
|
50
51
|
fail-fast: false
|
|
51
52
|
matrix:
|
|
52
53
|
ruby: ["3.2", "3.3", "3.4"]
|
|
53
|
-
|
|
54
|
+
rack: ["rack2", "rack3"]
|
|
55
|
+
redis: ["redis:7.4", "valkey/valkey"]
|
|
54
56
|
|
|
55
57
|
services:
|
|
56
58
|
postgres:
|
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
data/lib/message_bus/client.rb
CHANGED
|
@@ -228,18 +228,18 @@ class MessageBus::Client
|
|
|
228
228
|
NEWLINE = "\r\n".freeze
|
|
229
229
|
COLON_SPACE = ": ".freeze
|
|
230
230
|
HTTP_11 = "HTTP/1.1 200 OK\r\n".freeze
|
|
231
|
-
CONTENT_LENGTH = "
|
|
232
|
-
CONNECTION_CLOSE = "
|
|
233
|
-
CHUNKED_ENCODING = "
|
|
234
|
-
NO_SNIFF = "
|
|
231
|
+
CONTENT_LENGTH = "content-length: ".freeze
|
|
232
|
+
CONNECTION_CLOSE = "connection: close\r\n".freeze
|
|
233
|
+
CHUNKED_ENCODING = "transfer-encoding: chunked\r\n".freeze
|
|
234
|
+
NO_SNIFF = "x-content-type-options: nosniff\r\n".freeze
|
|
235
235
|
|
|
236
|
-
TYPE_TEXT = "
|
|
237
|
-
TYPE_JSON = "
|
|
236
|
+
TYPE_TEXT = "content-type: text/plain; charset=utf-8\r\n".freeze
|
|
237
|
+
TYPE_JSON = "content-type: application/json; charset=utf-8\r\n".freeze
|
|
238
238
|
|
|
239
239
|
def write_headers
|
|
240
240
|
@io.write(HTTP_11)
|
|
241
241
|
@headers.each do |k, v|
|
|
242
|
-
next if k == "
|
|
242
|
+
next if k == "content-type"
|
|
243
243
|
|
|
244
244
|
@io.write(k)
|
|
245
245
|
@io.write(COLON_SPACE)
|
|
@@ -75,7 +75,7 @@ class MessageBus::Rack::Middleware
|
|
|
75
75
|
if @bus.allow_broadcast? && env['PATH_INFO'] == @broadcast_route
|
|
76
76
|
parsed = Rack::Request.new(env)
|
|
77
77
|
@bus.publish parsed["channel"], parsed["data"]
|
|
78
|
-
return [200, { "
|
|
78
|
+
return [200, { "content-type" => "text/html" }, ["sent"]]
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
client_id = env['PATH_INFO'][@base_route_length..-1].split("/")[0]
|
|
@@ -169,9 +169,9 @@ class MessageBus::Rack::Middleware
|
|
|
169
169
|
end
|
|
170
170
|
|
|
171
171
|
if allow_chunked
|
|
172
|
-
response.headers["
|
|
173
|
-
response.headers["
|
|
174
|
-
response.headers["
|
|
172
|
+
response.headers["x-content-type-options"] = "nosniff"
|
|
173
|
+
response.headers["transfer-encoding"] = "chunked"
|
|
174
|
+
response.headers["content-type"] = "text/plain; charset=utf-8"
|
|
175
175
|
end
|
|
176
176
|
|
|
177
177
|
response.status = 200
|
data/lib/message_bus/version.rb
CHANGED
data/message_bus.gemspec
CHANGED
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
|
|
|
14
14
|
gem.name = "message_bus"
|
|
15
15
|
gem.require_paths = ["lib"]
|
|
16
16
|
gem.version = MessageBus::VERSION
|
|
17
|
-
gem.required_ruby_version = ">= 2.
|
|
17
|
+
gem.required_ruby_version = ">= 3.2.0"
|
|
18
18
|
|
|
19
19
|
gem.add_runtime_dependency 'rack', '> 2', '< 4'
|
|
20
20
|
|
|
@@ -37,7 +37,5 @@ Gem::Specification.new do |gem|
|
|
|
37
37
|
gem.add_development_dependency 'oj'
|
|
38
38
|
gem.add_development_dependency 'yard'
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
gem.add_development_dependency 'rubocop-discourse', '3.8.1'
|
|
42
|
-
end
|
|
40
|
+
gem.add_development_dependency 'rubocop-discourse', '3.8.1'
|
|
43
41
|
end
|
|
@@ -32,6 +32,8 @@ describe MessageBus::Client do
|
|
|
32
32
|
break if line == ""
|
|
33
33
|
|
|
34
34
|
name, val = line.split(": ")
|
|
35
|
+
name = name.downcase
|
|
36
|
+
raise "duplicate header: #{name}" if headers.key?(name)
|
|
35
37
|
headers[name] = val
|
|
36
38
|
end
|
|
37
39
|
|
|
@@ -67,7 +69,7 @@ describe MessageBus::Client do
|
|
|
67
69
|
|
|
68
70
|
status, headers, chunks = http_parse(lines)
|
|
69
71
|
|
|
70
|
-
headers["
|
|
72
|
+
headers["content-type"].must_equal "text/plain; charset=utf-8"
|
|
71
73
|
status.must_equal "200"
|
|
72
74
|
chunks.length.must_equal 2
|
|
73
75
|
|
|
@@ -21,7 +21,7 @@ describe MessageBus::Rack::Middleware do
|
|
|
21
21
|
use FakeAsyncMiddleware, message_bus: bus
|
|
22
22
|
use e_m if e_m
|
|
23
23
|
use MessageBus::Rack::Middleware, message_bus: bus
|
|
24
|
-
run lambda { |_env| [500, { '
|
|
24
|
+
run lambda { |_env| [500, { 'content-type' => 'text/html' }, 'should not be called'] }
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
@async_middleware = builder.to_app
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: message_bus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.5.
|
|
4
|
+
version: 4.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sam Saffron
|
|
@@ -308,6 +308,8 @@ files:
|
|
|
308
308
|
- examples/chat/docker_container/update_chat
|
|
309
309
|
- examples/minimal/Gemfile
|
|
310
310
|
- examples/minimal/config.ru
|
|
311
|
+
- gemfiles/rack2.gemfile
|
|
312
|
+
- gemfiles/rack3.gemfile
|
|
311
313
|
- lib/message_bus.rb
|
|
312
314
|
- lib/message_bus/backends.rb
|
|
313
315
|
- lib/message_bus/backends/base.rb
|
|
@@ -366,7 +368,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
366
368
|
requirements:
|
|
367
369
|
- - ">="
|
|
368
370
|
- !ruby/object:Gem::Version
|
|
369
|
-
version: 2.
|
|
371
|
+
version: 3.2.0
|
|
370
372
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
371
373
|
requirements:
|
|
372
374
|
- - ">="
|