hanami-events-cloud_pubsub 1.3.0 → 1.4.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 +5 -5
- data/Gemfile.lock +1 -1
- data/README.md +3 -2
- data/lib/hanami/events/adapter/cloud_pubsub.rb +11 -3
- data/lib/hanami/events/cloud_pubsub.rb +2 -0
- data/lib/hanami/events/cloud_pubsub/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4202fc674eb86ffc8156eb9dd5faaf546b19aed5b673cc7ea8df9b065189365d
|
|
4
|
+
data.tar.gz: b4461cb6f23a773b0959e9d56430d1af15b8b2fa52146e53b655873421543fc1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3fbcdcd8e97c5e957e948cd094671cfc601fe1f0ce1ef5e0209006f3a85e0cede7acd622ee8891a5176f1f6af9d09101f8f6d6a3b0894a80b1f09df965339fd8
|
|
7
|
+
data.tar.gz: 3e0a0ca5506ed182f11eaf0779214d48c56509a95930edffc18bd5dc5f2dfbb8def55c57a8a798e6947f8ae3bc772b60be15dd4e6c09e42350e44278ce236d44
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -27,8 +27,9 @@ Configure the pubsub adapter how you want (optional):
|
|
|
27
27
|
Hanami.configure do
|
|
28
28
|
environment :development do
|
|
29
29
|
cloud_pubsub do |config|
|
|
30
|
-
config.pubsub = { project_id: 'emulator' }
|
|
31
|
-
config.logger = Hanami.logger
|
|
30
|
+
config.pubsub = { project_id: 'emulator' } # optional
|
|
31
|
+
config.logger = Hanami.logger # optional
|
|
32
|
+
config.namespace = :staging # optional
|
|
32
33
|
# ...
|
|
33
34
|
end
|
|
34
35
|
end
|
|
@@ -26,7 +26,8 @@ module Hanami
|
|
|
26
26
|
#
|
|
27
27
|
# @param event [Symbol, String] the event name
|
|
28
28
|
# @param payload [Hash] the event data
|
|
29
|
-
def broadcast(
|
|
29
|
+
def broadcast(name, payload)
|
|
30
|
+
event_name = namespaced(name)
|
|
30
31
|
topic = topic_for event_name
|
|
31
32
|
payload = serializer.serialize(payload)
|
|
32
33
|
attributes = { id: SecureRandom.uuid, event_name: event_name }
|
|
@@ -42,13 +43,16 @@ module Hanami
|
|
|
42
43
|
# @param id [String] A unique identifier for the subscriber
|
|
43
44
|
# @param subscriber_opts [String] Additional options for the subscriber
|
|
44
45
|
# @param block [Block] to execute when event is broadcasted
|
|
45
|
-
def subscribe(
|
|
46
|
+
def subscribe(name, id:, **subscriber_opts, &block)
|
|
47
|
+
event_name = namespaced(name)
|
|
48
|
+
namespaced_id = namespaced(id)
|
|
49
|
+
|
|
46
50
|
logger.debug("Subscribed listener \"#{id}\" for event \"#{event_name}\"")
|
|
47
51
|
|
|
48
52
|
@subscribers << Subscriber.new(event_name, block, logger)
|
|
49
53
|
topic = topic_for event_name
|
|
50
54
|
|
|
51
|
-
register_listener(event_name, topic,
|
|
55
|
+
register_listener(event_name, topic, namespaced_id, subscriber_opts)
|
|
52
56
|
end
|
|
53
57
|
|
|
54
58
|
def flush_messages
|
|
@@ -95,6 +99,10 @@ module Hanami
|
|
|
95
99
|
@pubsub.find_topic(event_name) || @pubsub.create_topic(event_name)
|
|
96
100
|
end
|
|
97
101
|
end
|
|
102
|
+
|
|
103
|
+
def namespaced(val, sep: '.')
|
|
104
|
+
[Hanami::Events::CloudPubsub.namespace, val].compact.join(sep)
|
|
105
|
+
end
|
|
98
106
|
end
|
|
99
107
|
end
|
|
100
108
|
end
|
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: 1.
|
|
4
|
+
version: 1.4.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: 2018-11-
|
|
11
|
+
date: 2018-11-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-configurable
|
|
@@ -171,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
171
171
|
version: '0'
|
|
172
172
|
requirements: []
|
|
173
173
|
rubyforge_project:
|
|
174
|
-
rubygems_version: 2.
|
|
174
|
+
rubygems_version: 2.7.7
|
|
175
175
|
signing_key:
|
|
176
176
|
specification_version: 4
|
|
177
177
|
summary: Google Cloud Pub/Sub adapter for the hanami-events gem
|