hanami-events-cloud_pubsub 2.6.2 → 2.9.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 +4 -4
- data/.tool-versions +1 -1
- data/.travis.yml +2 -1
- data/Gemfile +2 -0
- data/Gemfile.lock +34 -29
- data/README.md +13 -0
- data/hanami-events-cloud_pubsub.gemspec +1 -1
- data/lib/hanami/events/adapter/cloud_pubsub.rb +16 -9
- data/lib/hanami/events/cloud_pubsub.rb +15 -0
- data/lib/hanami/events/cloud_pubsub/listener.rb +1 -1
- data/lib/hanami/events/cloud_pubsub/middleware/auto_retry.rb +2 -2
- data/lib/hanami/events/cloud_pubsub/middleware/client/request_id.rb +22 -0
- data/lib/hanami/events/cloud_pubsub/middleware/logging.rb +2 -2
- data/lib/hanami/events/cloud_pubsub/middleware/prometheus.rb +14 -4
- data/lib/hanami/events/cloud_pubsub/middleware/request_id.rb +41 -0
- data/lib/hanami/events/cloud_pubsub/middleware/stack.rb +3 -3
- data/lib/hanami/events/cloud_pubsub/version.rb +1 -1
- metadata +7 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a5ffe95cabc82141bd06ee9514ad0af66aaba9c5ebc719190e7cc9efba855274
|
|
4
|
+
data.tar.gz: 119b219d3294f50b37a13daa36a4a55edf0d85f5ac14e82676fee3cad62f135a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a3475491db3dab17ab2fd423c056dca407977321223bd457903b3773bdbd7ef9080b2446e70305e8e64f136d6bd434c157b90ae72bd48f91bd388cb060005ee3
|
|
7
|
+
data.tar.gz: 93bd30e26d6a85281f21dfd394f6aa7ea41a340459426f8b280f798e56b1fb3dc857390e6384e8d4605a286cbd313174eab2207e971e0c02374663cd91180744
|
data/.tool-versions
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby 2.
|
|
1
|
+
ruby 2.7.1
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -8,9 +8,9 @@ GIT
|
|
|
8
8
|
PATH
|
|
9
9
|
remote: .
|
|
10
10
|
specs:
|
|
11
|
-
hanami-events-cloud_pubsub (2.
|
|
11
|
+
hanami-events-cloud_pubsub (2.9.0)
|
|
12
12
|
dry-configurable (>= 0.8)
|
|
13
|
-
google-cloud-pubsub (>= 0.38.1, < 1.
|
|
13
|
+
google-cloud-pubsub (>= 0.38.1, < 1.7)
|
|
14
14
|
hanami-cli (~> 0.2)
|
|
15
15
|
hanami-events (~> 0.2.0)
|
|
16
16
|
rack
|
|
@@ -20,12 +20,12 @@ GEM
|
|
|
20
20
|
specs:
|
|
21
21
|
addressable (2.7.0)
|
|
22
22
|
public_suffix (>= 2.0.2, < 5.0)
|
|
23
|
-
ast (2.4.
|
|
24
|
-
coderay (1.1.
|
|
23
|
+
ast (2.4.1)
|
|
24
|
+
coderay (1.1.3)
|
|
25
25
|
concurrent-ruby (1.1.6)
|
|
26
|
-
diff-lcs (1.
|
|
26
|
+
diff-lcs (1.4.4)
|
|
27
27
|
docile (1.3.2)
|
|
28
|
-
dry-configurable (0.11.
|
|
28
|
+
dry-configurable (0.11.6)
|
|
29
29
|
concurrent-ruby (~> 1.0)
|
|
30
30
|
dry-core (~> 0.4, >= 0.4.7)
|
|
31
31
|
dry-equalizer (~> 0.2)
|
|
@@ -40,10 +40,10 @@ GEM
|
|
|
40
40
|
google-cloud-core (1.5.0)
|
|
41
41
|
google-cloud-env (~> 1.0)
|
|
42
42
|
google-cloud-errors (~> 1.0)
|
|
43
|
-
google-cloud-env (1.3.
|
|
43
|
+
google-cloud-env (1.3.3)
|
|
44
44
|
faraday (>= 0.17.3, < 2.0)
|
|
45
|
-
google-cloud-errors (1.0.
|
|
46
|
-
google-cloud-pubsub (1.
|
|
45
|
+
google-cloud-errors (1.0.1)
|
|
46
|
+
google-cloud-pubsub (1.6.1)
|
|
47
47
|
concurrent-ruby (~> 1.1)
|
|
48
48
|
google-cloud-core (~> 1.2)
|
|
49
49
|
google-gax (~> 1.8)
|
|
@@ -56,22 +56,22 @@ GEM
|
|
|
56
56
|
googleauth (~> 0.9)
|
|
57
57
|
grpc (~> 1.24)
|
|
58
58
|
rly (~> 0.2.3)
|
|
59
|
-
google-protobuf (3.
|
|
59
|
+
google-protobuf (3.12.4)
|
|
60
60
|
googleapis-common-protos (1.3.10)
|
|
61
61
|
google-protobuf (~> 3.11)
|
|
62
62
|
googleapis-common-protos-types (>= 1.0.5, < 2.0)
|
|
63
63
|
grpc (~> 1.27)
|
|
64
64
|
googleapis-common-protos-types (1.0.5)
|
|
65
65
|
google-protobuf (~> 3.11)
|
|
66
|
-
googleauth (0.
|
|
66
|
+
googleauth (0.13.1)
|
|
67
67
|
faraday (>= 0.17.3, < 2.0)
|
|
68
68
|
jwt (>= 1.4, < 3.0)
|
|
69
69
|
memoist (~> 0.16)
|
|
70
70
|
multi_json (~> 1.11)
|
|
71
71
|
os (>= 0.9, < 2.0)
|
|
72
72
|
signet (~> 0.14)
|
|
73
|
-
grpc (1.
|
|
74
|
-
google-protobuf (~> 3.
|
|
73
|
+
grpc (1.30.2)
|
|
74
|
+
google-protobuf (~> 3.12)
|
|
75
75
|
googleapis-common-protos-types (~> 1.0)
|
|
76
76
|
grpc-google-iam-v1 (0.6.10)
|
|
77
77
|
google-protobuf (~> 3.11)
|
|
@@ -83,47 +83,51 @@ GEM
|
|
|
83
83
|
hanami-utils (1.3.6)
|
|
84
84
|
concurrent-ruby (~> 1.0)
|
|
85
85
|
transproc (~> 1.0)
|
|
86
|
-
jaro_winkler (1.5.4)
|
|
87
86
|
jwt (2.2.1)
|
|
88
87
|
memoist (0.16.2)
|
|
89
88
|
method_source (1.0.0)
|
|
90
|
-
multi_json (1.
|
|
89
|
+
multi_json (1.15.0)
|
|
91
90
|
multipart-post (2.1.1)
|
|
92
|
-
os (1.1.
|
|
93
|
-
parallel (1.19.
|
|
94
|
-
parser (2.7.1.
|
|
95
|
-
ast (~> 2.4.
|
|
96
|
-
prometheus-client (2.
|
|
91
|
+
os (1.1.1)
|
|
92
|
+
parallel (1.19.2)
|
|
93
|
+
parser (2.7.1.4)
|
|
94
|
+
ast (~> 2.4.1)
|
|
95
|
+
prometheus-client (2.1.0)
|
|
97
96
|
pry (0.13.1)
|
|
98
97
|
coderay (~> 1.1)
|
|
99
98
|
method_source (~> 1.0)
|
|
100
|
-
public_suffix (4.0.
|
|
101
|
-
rack (2.2.
|
|
99
|
+
public_suffix (4.0.5)
|
|
100
|
+
rack (2.2.3)
|
|
102
101
|
rainbow (3.0.0)
|
|
103
102
|
rake (13.0.1)
|
|
103
|
+
regexp_parser (1.7.1)
|
|
104
|
+
request_id (0.4.3)
|
|
104
105
|
rexml (3.2.4)
|
|
105
106
|
rly (0.2.3)
|
|
106
107
|
rspec (3.9.0)
|
|
107
108
|
rspec-core (~> 3.9.0)
|
|
108
109
|
rspec-expectations (~> 3.9.0)
|
|
109
110
|
rspec-mocks (~> 3.9.0)
|
|
110
|
-
rspec-core (3.9.
|
|
111
|
-
rspec-support (~> 3.9.
|
|
112
|
-
rspec-expectations (3.9.
|
|
111
|
+
rspec-core (3.9.2)
|
|
112
|
+
rspec-support (~> 3.9.3)
|
|
113
|
+
rspec-expectations (3.9.2)
|
|
113
114
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
114
115
|
rspec-support (~> 3.9.0)
|
|
115
116
|
rspec-mocks (3.9.1)
|
|
116
117
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
117
118
|
rspec-support (~> 3.9.0)
|
|
118
|
-
rspec-support (3.9.
|
|
119
|
-
rubocop (0.
|
|
120
|
-
jaro_winkler (~> 1.5.1)
|
|
119
|
+
rspec-support (3.9.3)
|
|
120
|
+
rubocop (0.89.0)
|
|
121
121
|
parallel (~> 1.10)
|
|
122
|
-
parser (>= 2.7.
|
|
122
|
+
parser (>= 2.7.1.1)
|
|
123
123
|
rainbow (>= 2.2.2, < 4.0)
|
|
124
|
+
regexp_parser (>= 1.7)
|
|
124
125
|
rexml
|
|
126
|
+
rubocop-ast (>= 0.1.0, < 1.0)
|
|
125
127
|
ruby-progressbar (~> 1.7)
|
|
126
128
|
unicode-display_width (>= 1.4.0, < 2.0)
|
|
129
|
+
rubocop-ast (0.3.0)
|
|
130
|
+
parser (>= 2.7.1.4)
|
|
127
131
|
ruby-progressbar (1.10.1)
|
|
128
132
|
signet (0.14.0)
|
|
129
133
|
addressable (~> 2.3)
|
|
@@ -147,6 +151,7 @@ DEPENDENCIES
|
|
|
147
151
|
prometheus-client
|
|
148
152
|
pry
|
|
149
153
|
rake (~> 13.0)
|
|
154
|
+
request_id (~> 0.4.3)
|
|
150
155
|
rspec (~> 3.0)
|
|
151
156
|
rubocop
|
|
152
157
|
simplecov
|
data/README.md
CHANGED
|
@@ -106,6 +106,19 @@ Then, run the worker process:
|
|
|
106
106
|
bundle exec cloudpubsub run
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
+
# `RequestId` Integration
|
|
110
|
+
|
|
111
|
+
To gem has an integration with [request_id](https://github.com/remind101/request_id), so you can trace interactions between various components in your app. To make it work properly, make sure the `request_id` is added to your Gemfile, then require the middleware:
|
|
112
|
+
|
|
113
|
+
```ruby
|
|
114
|
+
require 'hanami/events/cloud_pubsub/middleware/request_id'
|
|
115
|
+
|
|
116
|
+
Hanami::Events::CloudPubsub.configure do |config|
|
|
117
|
+
# ...
|
|
118
|
+
end
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
|
|
109
122
|
# Prometheus Integration
|
|
110
123
|
|
|
111
124
|
If you have the `prometheus-client` gem installed, a `/metrics` endpoint will
|
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.require_paths = ['lib']
|
|
24
24
|
|
|
25
25
|
spec.add_dependency 'dry-configurable', '>= 0.8'
|
|
26
|
-
spec.add_dependency 'google-cloud-pubsub', '>= 0.38.1', '< 1.
|
|
26
|
+
spec.add_dependency 'google-cloud-pubsub', '>= 0.38.1', '< 1.7'
|
|
27
27
|
spec.add_dependency 'hanami-cli', '~> 0.2'
|
|
28
28
|
spec.add_dependency 'hanami-events', '~> 0.2.0'
|
|
29
29
|
spec.add_dependency 'rack'
|
|
@@ -11,7 +11,7 @@ module Hanami
|
|
|
11
11
|
#
|
|
12
12
|
# @api private
|
|
13
13
|
class CloudPubsub
|
|
14
|
-
attr_reader :subscribers, :listeners, :topic_registry
|
|
14
|
+
attr_reader :subscribers, :listeners, :topic_registry, :middleware
|
|
15
15
|
|
|
16
16
|
def initialize(params)
|
|
17
17
|
@pubsub = params[:pubsub]
|
|
@@ -22,20 +22,23 @@ module Hanami
|
|
|
22
22
|
@serializer_type = params.fetch(:serializer, :json).to_sym
|
|
23
23
|
@topic_registry = {}
|
|
24
24
|
@mutex = Mutex.new
|
|
25
|
+
@middleware = ::Hanami::Events::CloudPubsub.config.client_middleware
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
# Brodcasts event to all subscribes
|
|
28
29
|
#
|
|
29
30
|
# @param event [Symbol, String] the event name
|
|
30
31
|
# @param payload [Hash] the event data
|
|
31
|
-
def broadcast(name, payload)
|
|
32
|
+
def broadcast(name, payload, **message_opts)
|
|
32
33
|
event_name = namespaced(name)
|
|
33
34
|
topic = topic_for event_name
|
|
34
35
|
payload = serializer.serialize(payload)
|
|
35
36
|
attributes = { id: SecureRandom.uuid, event_name: event_name }
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
middleware.invoke(payload, **attributes, **message_opts) do |*args|
|
|
39
|
+
topic.publish_async(*args) do |result|
|
|
40
|
+
logger.info "Published event #{result.inspect}"
|
|
41
|
+
end
|
|
39
42
|
end
|
|
40
43
|
end
|
|
41
44
|
|
|
@@ -97,11 +100,15 @@ module Hanami
|
|
|
97
100
|
|
|
98
101
|
# rubocop:disable Metrics/LineLength
|
|
99
102
|
def topic_for(name)
|
|
100
|
-
@topic_registry[name.to_s]
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
return @topic_registry[name.to_s] if @topic_registry[name.to_s]
|
|
104
|
+
|
|
105
|
+
topic = @pubsub.find_topic(name) ||
|
|
106
|
+
(Hanami::Events::CloudPubsub.auto_create_topics && @pubsub.create_topic(name)) ||
|
|
107
|
+
raise(::Hanami::Events::CloudPubsub::Errors::TopicNotFoundError, "no topic named: #{name}")
|
|
108
|
+
|
|
109
|
+
topic.enable_message_ordering!
|
|
110
|
+
|
|
111
|
+
@topic_registry[name.to_s] = topic
|
|
105
112
|
end
|
|
106
113
|
# rubocop:enable Metrics/LineLength
|
|
107
114
|
|
|
@@ -72,6 +72,21 @@ module Hanami
|
|
|
72
72
|
|
|
73
73
|
setting :middleware, middleware_stack
|
|
74
74
|
|
|
75
|
+
client_middleware_stack = Middleware::Stack.new
|
|
76
|
+
|
|
77
|
+
begin
|
|
78
|
+
require 'request_id'
|
|
79
|
+
require 'hanami/events/cloud_pubsub/middleware/client/request_id'
|
|
80
|
+
require 'hanami/events/cloud_pubsub/middleware/request_id'
|
|
81
|
+
|
|
82
|
+
client_middleware_stack.prepend(Middleware::Client::RequestId.new)
|
|
83
|
+
middleware_stack.prepend(Middleware::RequestId.new)
|
|
84
|
+
rescue LoadError
|
|
85
|
+
# ok
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
setting :client_middleware, client_middleware_stack
|
|
89
|
+
|
|
75
90
|
setting :on_shutdown_handlers, [], reader: true
|
|
76
91
|
|
|
77
92
|
def self.finalize_settings!
|
|
@@ -14,10 +14,10 @@ module Hanami
|
|
|
14
14
|
@max_attempts = max_attempts
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def call(message, args
|
|
17
|
+
def call(message, **args)
|
|
18
18
|
succeeded = false
|
|
19
19
|
failed = false
|
|
20
|
-
yield(args)
|
|
20
|
+
yield(**args)
|
|
21
21
|
succeeded = true
|
|
22
22
|
rescue StandardError => e
|
|
23
23
|
failed = true
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Hanami
|
|
4
|
+
module Events
|
|
5
|
+
module CloudPubsub
|
|
6
|
+
module Middleware
|
|
7
|
+
module Client
|
|
8
|
+
# Broadcasts events with current request id
|
|
9
|
+
class RequestId
|
|
10
|
+
def call(payload, attributes = {})
|
|
11
|
+
attributes.merge!(
|
|
12
|
+
request_id: ::RequestId.request_id || SecureRandom.uuid
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
yield(payload, **attributes)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -10,9 +10,9 @@ module Hanami
|
|
|
10
10
|
@logger = logger
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def call(msg, opts
|
|
13
|
+
def call(msg, **opts)
|
|
14
14
|
started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
15
|
-
yield(opts)
|
|
15
|
+
yield(**opts)
|
|
16
16
|
ensure
|
|
17
17
|
ended_at = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
18
18
|
seconds = ended_at - started_at
|
|
@@ -14,16 +14,26 @@ module Hanami
|
|
|
14
14
|
@events_counter = prometheus.counter(
|
|
15
15
|
:received_pubsub_events,
|
|
16
16
|
docstring: 'A counter of received pubsub events',
|
|
17
|
-
labels: %i[event_name subscription]
|
|
17
|
+
labels: %i[event_name subscription status]
|
|
18
18
|
)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def call(msg, opts
|
|
22
|
-
|
|
21
|
+
def call(msg, **opts)
|
|
22
|
+
status = :running
|
|
23
|
+
|
|
24
|
+
begin
|
|
25
|
+
ret = yield(**opts)
|
|
26
|
+
status = :succeeded
|
|
27
|
+
ret
|
|
28
|
+
rescue StandardError
|
|
29
|
+
status = :failed
|
|
30
|
+
raise
|
|
31
|
+
end
|
|
23
32
|
ensure
|
|
24
33
|
sub = msg.subscription.subscriber.subscription_name
|
|
25
34
|
event_name = msg.attributes['event_name']
|
|
26
|
-
|
|
35
|
+
labels = { event_name: event_name, subscription: sub, status: status }
|
|
36
|
+
events_counter.increment(labels: labels)
|
|
27
37
|
end
|
|
28
38
|
end
|
|
29
39
|
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require 'request_id'
|
|
5
|
+
rescue LoadError
|
|
6
|
+
abort 'Please add "request_id" to your Gemfile to use this middleware'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
module Hanami
|
|
10
|
+
module Events
|
|
11
|
+
module CloudPubsub
|
|
12
|
+
module Middleware
|
|
13
|
+
# Middleware used for logging useful information about an event
|
|
14
|
+
class RequestId
|
|
15
|
+
def call(msg, **opts)
|
|
16
|
+
setup_request_id(msg)
|
|
17
|
+
yield(**opts)
|
|
18
|
+
ensure
|
|
19
|
+
clear_request_id(msg)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def setup_request_id(msg)
|
|
25
|
+
id = msg.attributes['request_id'] || msg.attributes[:request_id]
|
|
26
|
+
|
|
27
|
+
::RequestId.request_id = id || SecureRandom.uuid
|
|
28
|
+
rescue StandardError => e
|
|
29
|
+
warn "Could not set request_id (#{e.message})"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def clear_request_id(_msg)
|
|
33
|
+
::RequestId.request_id = nil
|
|
34
|
+
rescue StandardError => e
|
|
35
|
+
warn "Could not clear request_id (#{e.message})"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -40,14 +40,14 @@ module Hanami
|
|
|
40
40
|
@entries.shift
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
def invoke(
|
|
43
|
+
def invoke(*args)
|
|
44
44
|
stack = entries.dup
|
|
45
45
|
|
|
46
46
|
traverse_stack = proc do |**opts|
|
|
47
47
|
if stack.empty?
|
|
48
|
-
yield(
|
|
48
|
+
yield(*args)
|
|
49
49
|
else
|
|
50
|
-
stack.shift.call(
|
|
50
|
+
stack.shift.call(*args, **opts, &traverse_stack)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hanami-events-cloud_pubsub
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ian Ker-Seymer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-08-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-configurable
|
|
@@ -33,7 +33,7 @@ dependencies:
|
|
|
33
33
|
version: 0.38.1
|
|
34
34
|
- - "<"
|
|
35
35
|
- !ruby/object:Gem::Version
|
|
36
|
-
version: '1.
|
|
36
|
+
version: '1.7'
|
|
37
37
|
type: :runtime
|
|
38
38
|
prerelease: false
|
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -43,7 +43,7 @@ dependencies:
|
|
|
43
43
|
version: 0.38.1
|
|
44
44
|
- - "<"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '1.
|
|
46
|
+
version: '1.7'
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: hanami-cli
|
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -179,8 +179,10 @@ files:
|
|
|
179
179
|
- lib/hanami/events/cloud_pubsub/integration.rb
|
|
180
180
|
- lib/hanami/events/cloud_pubsub/listener.rb
|
|
181
181
|
- lib/hanami/events/cloud_pubsub/middleware/auto_retry.rb
|
|
182
|
+
- lib/hanami/events/cloud_pubsub/middleware/client/request_id.rb
|
|
182
183
|
- lib/hanami/events/cloud_pubsub/middleware/logging.rb
|
|
183
184
|
- lib/hanami/events/cloud_pubsub/middleware/prometheus.rb
|
|
185
|
+
- lib/hanami/events/cloud_pubsub/middleware/request_id.rb
|
|
184
186
|
- lib/hanami/events/cloud_pubsub/middleware/stack.rb
|
|
185
187
|
- lib/hanami/events/cloud_pubsub/register.rb
|
|
186
188
|
- lib/hanami/events/cloud_pubsub/runner.rb
|
|
@@ -208,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
208
210
|
- !ruby/object:Gem::Version
|
|
209
211
|
version: '0'
|
|
210
212
|
requirements: []
|
|
211
|
-
rubygems_version: 3.
|
|
213
|
+
rubygems_version: 3.1.2
|
|
212
214
|
signing_key:
|
|
213
215
|
specification_version: 4
|
|
214
216
|
summary: Google Cloud Pub/Sub adapter for the hanami-events gem
|