message_bus 4.4.0 → 4.5.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.
@@ -14,5 +14,5 @@ run ->(env) do
14
14
  end
15
15
  end
16
16
 
17
- [200, { "Content-Type" => "text/html" }, ["Howdy"]]
17
+ [200, { "content-type" => "text/html" }, ["Howdy"]]
18
18
  end
@@ -65,7 +65,7 @@ describe MessageBus::HTTPClient do
65
65
  # that we sleep for the right interval after failure
66
66
  sleep 0.5
67
67
 
68
- assert_match(/Errno::ECONNREFUSED|SocketError/, fake.string)
68
+ assert_match(/Errno::ECONNREFUSED|SocketError|Socket::ResolutionError/, fake.string)
69
69
  ensure
70
70
  $stderr = original_stderr
71
71
  end
@@ -59,7 +59,7 @@ describe MessageBus::Client do
59
59
  @client.use_chunked = true
60
60
  r, w = IO.pipe
61
61
  @client.io = w
62
- @client.headers = { "Content-Type" => "application/json; charset=utf-8" }
62
+ @client.headers = { "content-type" => "application/json; charset=utf-8" }
63
63
  @client << MessageBus::Message.new(1, 1, '/test', 'test')
64
64
  @client << MessageBus::Message.new(2, 2, '/test', "a|\r\n|\r\n|b")
65
65
 
@@ -90,6 +90,29 @@ describe MessageBus::ConnectionManager do
90
90
  @manager.notify_clients(m)
91
91
  assert_nil @resp.sent
92
92
  end
93
+
94
+ it "should prune empty channel and site_id entries from subscriptions after removing clients" do
95
+ client1 = MessageBus::Client.new(client_id: "abc", user_id: 1, site_id: 20)
96
+ client1.subscribe('test', -1)
97
+ @manager.add_client(client1)
98
+
99
+ client2 = MessageBus::Client.new(client_id: "def", user_id: 2, site_id: 20)
100
+ client2.subscribe('test', -1)
101
+ @manager.add_client(client2)
102
+
103
+ @manager.remove_client(client1)
104
+
105
+ subscriptions = @manager.instance_variable_get(:@subscriptions)
106
+ assert subscriptions[client1.site_id].key?('test')
107
+ assert subscriptions[client1.site_id]['test'].include?(client2.client_id)
108
+ refute subscriptions[client1.site_id]['test'].include?(client1.client_id)
109
+
110
+ @manager.remove_client(client2)
111
+
112
+ subscriptions = @manager.instance_variable_get(:@subscriptions)
113
+ assert_nil subscriptions.dig(client1.site_id, 'test')
114
+ assert_nil subscriptions[client1.site_id]
115
+ end
93
116
  end
94
117
 
95
118
  describe MessageBus::ConnectionManager, "notifying and subscribing concurrently" do
metadata CHANGED
@@ -1,28 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: message_bus
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-14 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rack
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 1.1.3
18
+ version: '3'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - ">="
23
+ - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 1.1.3
25
+ version: '3'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: redis
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +164,7 @@ dependencies:
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  - !ruby/object:Gem::Dependency
167
- name: puma
167
+ name: pitchfork
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - ">="
@@ -205,6 +205,20 @@ dependencies:
205
205
  - - ">="
206
206
  - !ruby/object:Gem::Version
207
207
  version: '0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: method_source
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
208
222
  - !ruby/object:Gem::Dependency
209
223
  name: oj
210
224
  requirement: !ruby/object:Gem::Requirement
@@ -260,7 +274,6 @@ files:
260
274
  - ".prettierrc"
261
275
  - ".rubocop.yml"
262
276
  - CHANGELOG
263
- - DEV.md
264
277
  - Dockerfile
265
278
  - Gemfile
266
279
  - Guardfile
@@ -311,8 +324,8 @@ files:
311
324
  - lib/message_bus/timer_thread.rb
312
325
  - lib/message_bus/version.rb
313
326
  - message_bus.gemspec
314
- - package-lock.json
315
327
  - package.json
328
+ - pnpm-lock.yaml
316
329
  - spec/assets/SpecHelper.js
317
330
  - spec/assets/message-bus.spec.js
318
331
  - spec/fixtures/test/Gemfile
@@ -354,7 +367,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
367
  - !ruby/object:Gem::Version
355
368
  version: '0'
356
369
  requirements: []
357
- rubygems_version: 3.6.2
370
+ rubygems_version: 3.6.9
358
371
  specification_version: 4
359
372
  summary: ''
360
373
  test_files: []
data/DEV.md DELETED
@@ -1,7 +0,0 @@
1
- ### How to Publish to NPM
2
-
3
- 1. First, edit `package.json` and bump the version.
4
-
5
- 2. Log in to npm `yarn login`
6
-
7
- 3. Publish: `yarn publish`