downstream 1.5.0 → 1.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7596d3ccbd47d258c9b949be9674651c600b75276cd8e38a3bbc021e95ec6214
4
- data.tar.gz: 8c7c3a0525f38c1a2e155153edca9d5edf39b646495dcc9815dd9181ca502987
3
+ metadata.gz: 1e21fb36c5475aee1858bcdbfa9f99db92a62059f74605906f95034e8661df0e
4
+ data.tar.gz: 0bf3825da8014d5a0daed6cbdcf21303d11b9657af42d96e55e5fe4488c0981b
5
5
  SHA512:
6
- metadata.gz: a02e6ffa1585f399a003750332bc4807bc1d50675f8a8d50968eb8e39de8a7589da82322225a2383d72416d6c2c5fe67aabb376c6df71e6b952579737b587054
7
- data.tar.gz: 72223db631146986eeb611bd320bae2bf6fc2aa70dc23037a5a8bc820ad84a0015b1b888d51717fb706257ea2a241113552024dde565636adef1951d871286e7
6
+ metadata.gz: b8b80db17bd482235eff304bf087c1eecd0e3a1a605cf4590f3c19cae725c1170cd8404dcab2b0603d67a726e53e08fc140069b38a4dcaf9e490a816a04e5b4d
7
+ data.tar.gz: 188c160278a9578615796d867833b1377bc1664b5ad1f750d4cd21d6eea3828eef956bf0a9570c0889d0b6a1b240c783df9bdb9c340768bc89893b3bdf00a392
data/README.md CHANGED
@@ -153,9 +153,9 @@ end
153
153
  # for asynchronous subscriptions
154
154
  it "is subscribed to some event" do
155
155
  event = MyEvent.new(some: "data")
156
- expect { Downstream.publish event }.
157
- to have_enqueued_async_subscriber_for(MySubscriberService).
158
- with(event)
156
+ expect { Downstream.publish event }
157
+ .to have_enqueued_async_subscriber_for(MySubscriberService)
158
+ .with(event)
159
159
  end
160
160
  ```
161
161
 
@@ -7,6 +7,7 @@ module Downstream
7
7
  config.downstream = Downstream.config
8
8
 
9
9
  config.to_prepare do
10
+ Downstream.pubsub.reset
10
11
  ActiveSupport.run_load_hooks("downstream-events", Downstream)
11
12
  end
12
13
  end
@@ -2,6 +2,10 @@
2
2
 
3
3
  module Downstream
4
4
  class AbstractPubsub
5
+ def reset
6
+ raise NotImplementedError
7
+ end
8
+
5
9
  def subscribe(identifier, callable)
6
10
  raise NotImplementedError
7
11
  end
@@ -6,8 +6,20 @@ require_relative "subscriber"
6
6
  module Downstream
7
7
  module Stateless
8
8
  class Pubsub < AbstractPubsub
9
+ def initialize
10
+ @subscribers = []
11
+ end
12
+
13
+ def reset
14
+ @subscribers.each(&:unsubscribe)
15
+ @subscribers.clear
16
+ end
17
+
9
18
  def subscribe(identifier, callable, async: false)
10
- Subscriber.new(callable, async: async).tap { |s| s.subscribe(identifier) }
19
+ Subscriber.new(callable, async: async).tap do |s|
20
+ s.subscribe(identifier)
21
+ @subscribers << s
22
+ end
11
23
  end
12
24
 
13
25
  def subscribed(identifier, callable, &block)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Downstream
4
- VERSION = "1.5.0"
4
+ VERSION = "1.6.0"
5
5
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: downstream
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - merkushin.m.s@gmail.com
8
8
  - dementiev.vm@gmail.com
9
- autorequire:
10
- bindir: exe
9
+ autorequire:
10
+ bindir: bin
11
11
  cert_chain: []
12
- date: 2024-04-26 00:00:00.000000000 Z
12
+ date: 2025-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: after_commit_everywhere
@@ -53,20 +53,6 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '6'
56
- - !ruby/object:Gem::Dependency
57
- name: appraisal
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '2.2'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '2.2'
70
56
  - !ruby/object:Gem::Dependency
71
57
  name: bundler
72
58
  requirement: !ruby/object:Gem::Requirement
@@ -95,48 +81,20 @@ dependencies:
95
81
  - - "~>"
96
82
  - !ruby/object:Gem::Version
97
83
  version: '1.3'
98
- - !ruby/object:Gem::Dependency
99
- name: debug
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '1.3'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '1.3'
112
84
  - !ruby/object:Gem::Dependency
113
85
  name: rake
114
86
  requirement: !ruby/object:Gem::Requirement
115
87
  requirements:
116
- - - "~>"
88
+ - - ">="
117
89
  - !ruby/object:Gem::Version
118
90
  version: '13.0'
119
91
  type: :development
120
92
  prerelease: false
121
93
  version_requirements: !ruby/object:Gem::Requirement
122
94
  requirements:
123
- - - "~>"
95
+ - - ">="
124
96
  - !ruby/object:Gem::Version
125
97
  version: '13.0'
126
- - !ruby/object:Gem::Dependency
127
- name: rspec
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '3.0'
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '3.0'
140
98
  - !ruby/object:Gem::Dependency
141
99
  name: rspec-rails
142
100
  requirement: !ruby/object:Gem::Requirement
@@ -151,36 +109,8 @@ dependencies:
151
109
  - - "~>"
152
110
  - !ruby/object:Gem::Version
153
111
  version: '6.0'
154
- - !ruby/object:Gem::Dependency
155
- name: sqlite3
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "~>"
159
- - !ruby/object:Gem::Version
160
- version: 1.4.0
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: 1.4.0
168
- - !ruby/object:Gem::Dependency
169
- name: standard
170
- requirement: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: '1.3'
175
- type: :development
176
- prerelease: false
177
- version_requirements: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '1.3'
182
- description:
183
- email:
112
+ description:
113
+ email:
184
114
  executables: []
185
115
  extensions: []
186
116
  extra_rdoc_files: []
@@ -203,8 +133,13 @@ homepage: https://github.com/palkan/downstream
203
133
  licenses:
204
134
  - MIT
205
135
  metadata:
136
+ bug_tracker_uri: http://github.com/palkan/downstream/issues
137
+ changelog_uri: https://github.com/palkan/downstream/blob/master/CHANGELOG.md
138
+ documentation_uri: http://github.com/palkan/downstream
139
+ homepage_uri: http://github.com/palkan/downstream
140
+ source_code_uri: http://github.com/palkan/downstream
206
141
  allowed_push_host: https://rubygems.org
207
- post_install_message:
142
+ post_install_message:
208
143
  rdoc_options: []
209
144
  require_paths:
210
145
  - lib
@@ -220,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
155
  version: '0'
221
156
  requirements: []
222
157
  rubygems_version: 3.4.19
223
- signing_key:
158
+ signing_key:
224
159
  specification_version: 4
225
160
  summary: Straightforward way to implement communication between Rails Engines using
226
161
  the Publish-Subscribe pattern