downstream 1.4.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: 0770f84f43315d12f61f304600f5bdbb45679de5fc32820a6d599fdab4f0028d
4
- data.tar.gz: aa877161f770583a778578d165b36e61df405eeecc4522ffe8af212085f5f2d7
3
+ metadata.gz: 1e21fb36c5475aee1858bcdbfa9f99db92a62059f74605906f95034e8661df0e
4
+ data.tar.gz: 0bf3825da8014d5a0daed6cbdcf21303d11b9657af42d96e55e5fe4488c0981b
5
5
  SHA512:
6
- metadata.gz: 7c245ff4501fbd5d1efd3d17958a2784d9cf2ff28037c647a7b25a89f6cafd13c716947f7a0fc94b50c64952e5a175a6117858ef7c94bc339119f01e4bda98b8
7
- data.tar.gz: 97defc1ff2d152767d833b4be84ac9b9c1202dce8f0e0673c7f5a25af09763b1ff54ea61839e7dfe1c9d16ebb6f45a8efff5d43d87d6494f193387f341b971a1
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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- GlobalID::Locator.use :downstream do |gid|
3
+ GlobalID::Locator.use "downstream" do |gid|
4
4
  params = gid.params.each_with_object({}) do |(key, value), memo|
5
5
  memo[key.to_sym] = if value.is_a?(String) && value.start_with?("gid://")
6
6
  GlobalID::Locator.locate(value)
@@ -102,7 +102,7 @@ module Downstream
102
102
  end
103
103
  end
104
104
 
105
- super(new_data.merge!(app: :downstream))
105
+ super(new_data.merge!(app: "downstream"))
106
106
  end
107
107
 
108
108
  alias_method :to_gid, :to_global_id
@@ -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)
@@ -101,7 +101,7 @@ module Downstream
101
101
  end
102
102
 
103
103
  def message_expectation_modifier
104
- number_modifier = @expected_number == 1 ? "once" : "#{@expected_number} times"
104
+ number_modifier = (@expected_number == 1) ? "once" : "#{@expected_number} times"
105
105
  case @expectation_type
106
106
  when :exactly then "exactly #{number_modifier}"
107
107
  when :at_most then "at most #{number_modifier}"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Downstream
4
- VERSION = "1.4.0"
4
+ VERSION = "1.6.0"
5
5
  end
data/lib/downstream.rb CHANGED
@@ -55,7 +55,7 @@ module Downstream
55
55
  "Please, specify event using `to:` option"
56
56
  end
57
57
 
58
- identifier = if to.is_a?(Class) && Event >= to
58
+ identifier = if to.is_a?(Class) && Event >= to # rubocop:disable Style/YodaCondition
59
59
  to.identifier
60
60
  else
61
61
  to
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.4.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
9
  autorequire:
10
- bindir: exe
10
+ bindir: bin
11
11
  cert_chain: []
12
- date: 2022-05-22 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,90 +81,34 @@ 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
143
101
  requirements:
144
102
  - - "~>"
145
103
  - !ruby/object:Gem::Version
146
- version: '5.0'
104
+ version: '6.0'
147
105
  type: :development
148
106
  prerelease: false
149
107
  version_requirements: !ruby/object:Gem::Requirement
150
108
  requirements:
151
109
  - - "~>"
152
110
  - !ruby/object:Gem::Version
153
- version: '5.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'
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'
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'
111
+ version: '6.0'
182
112
  description:
183
113
  email:
184
114
  executables: []
@@ -199,10 +129,15 @@ files:
199
129
  - lib/downstream/rspec/have_published_event.rb
200
130
  - lib/downstream/subscriber_job.rb
201
131
  - lib/downstream/version.rb
202
- homepage: https://github.com/bibendi/downstream
132
+ 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
142
  post_install_message:
208
143
  rdoc_options: []
@@ -212,14 +147,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
147
  requirements:
213
148
  - - ">="
214
149
  - !ruby/object:Gem::Version
215
- version: '2.5'
150
+ version: '2.7'
216
151
  required_rubygems_version: !ruby/object:Gem::Requirement
217
152
  requirements:
218
153
  - - ">="
219
154
  - !ruby/object:Gem::Version
220
155
  version: '0'
221
156
  requirements: []
222
- rubygems_version: 3.2.32
157
+ rubygems_version: 3.4.19
223
158
  signing_key:
224
159
  specification_version: 4
225
160
  summary: Straightforward way to implement communication between Rails Engines using