hanami-events-cloud_pubsub 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|