downstream 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
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