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 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