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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: dc7126794e3070a56d5269402c4feb58d9697143
4
- data.tar.gz: 6f82edd68181f5990aed1c2975d53268970f6bc4
2
+ SHA256:
3
+ metadata.gz: 4202fc674eb86ffc8156eb9dd5faaf546b19aed5b673cc7ea8df9b065189365d
4
+ data.tar.gz: b4461cb6f23a773b0959e9d56430d1af15b8b2fa52146e53b655873421543fc1
5
5
  SHA512:
6
- metadata.gz: d5629a673e57714d063453c5c1a52b5df74e011a07a4704f8ec266474126c1f41b423a75256133f68a263cf4c81dfcdedc619a988068a278f90a8a3d42247bed
7
- data.tar.gz: 6ee2d25cf93e9c00ebae69bd1770bda203fef896017425cfa0724415164774e2cad70407fbe37b6a8f8a07050b08a0f95a7393b37de3c11fcd53906540b01c73
6
+ metadata.gz: 3fbcdcd8e97c5e957e948cd094671cfc601fe1f0ce1ef5e0209006f3a85e0cede7acd622ee8891a5176f1f6af9d09101f8f6d6a3b0894a80b1f09df965339fd8
7
+ data.tar.gz: 3e0a0ca5506ed182f11eaf0779214d48c56509a95930edffc18bd5dc5f2dfbb8def55c57a8a798e6947f8ae3bc772b60be15dd4e6c09e42350e44278ce236d44
data/Gemfile.lock CHANGED
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- hanami-events-cloud_pubsub (1.3.0)
11
+ hanami-events-cloud_pubsub (1.4.0)
12
12
  dry-configurable (~> 0.7.0)
13
13
  google-cloud-pubsub (~> 0.33.0)
14
14
  hanami-cli (>= 0.2.0)
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(event_name, payload)
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(event_name, id:, **subscriber_opts, &block)
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, id, subscriber_opts)
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
@@ -15,6 +15,8 @@ module Hanami
15
15
  module CloudPubsub
16
16
  extend Dry::Configurable
17
17
 
18
+ setting :namespace, reader: true
19
+
18
20
  setting :subscriber, reader: true do
19
21
  setting :streams, 4
20
22
  setting :threads do
@@ -3,7 +3,7 @@
3
3
  module Hanami
4
4
  module Events
5
5
  module CloudPubsub
6
- VERSION = '1.3.0'
6
+ VERSION = '1.4.0'
7
7
  end
8
8
  end
9
9
  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.3.0
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-14 00:00:00.000000000 Z
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.6.14
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