hanami-events-cloud_pubsub 1.2.0 → 1.2.1
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/.rubocop.yml +2 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +6 -7
- data/README.md +7 -0
- data/bin/rspec +29 -0
- data/lib/hanami/events/adapter/cloud_pubsub.rb +7 -4
- data/lib/hanami/events/cloud_pubsub/listener.rb +4 -1
- data/lib/hanami/events/cloud_pubsub/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 49ddb33f0919dfdcd8b9691f5a7c9738c1f8450e7b526b5fed74d7f50a6b6e02
|
|
4
|
+
data.tar.gz: d91a005b6c22deaa3bd86a63b22a381459342afc4d8567a9ea78f8bed28a209c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: df6a87b7373f4d6e08ed53668575512a11523c359897684f0e30463fa376e2a0307dc8cbf335b6631abb88ac5a2087a71ff8b013e1e48bf66c42ccd3a4eb7348
|
|
7
|
+
data.tar.gz: d326e6ab180bac789fe8e894c45a4ae522d9ecbd4f741a130967d21eab0b282cb13032dde2e4e27183b9d538082d6c815ec0f249764cd63d1a7eb35b6d9be160
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -8,7 +8,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
|
8
8
|
gemspec
|
|
9
9
|
|
|
10
10
|
group :test do
|
|
11
|
-
gem 'hanami-events', github: '
|
|
11
|
+
gem 'hanami-events', github: 'hanami/events'
|
|
12
12
|
gem 'pry'
|
|
13
13
|
gem 'rubocop', '~> 0.54.0'
|
|
14
14
|
gem 'simplecov', require: false
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
GIT
|
|
2
|
-
remote: https://github.com/
|
|
3
|
-
revision:
|
|
4
|
-
branch: args-to-subscribe
|
|
2
|
+
remote: https://github.com/hanami/events
|
|
3
|
+
revision: e2b076d3ba7c1dfd78daa48500abd9c538a5e9c6
|
|
5
4
|
specs:
|
|
6
5
|
hanami-events (0.1.0)
|
|
7
6
|
dry-container (~> 0.6)
|
|
@@ -9,7 +8,7 @@ GIT
|
|
|
9
8
|
PATH
|
|
10
9
|
remote: .
|
|
11
10
|
specs:
|
|
12
|
-
hanami-events-cloud_pubsub (1.2.
|
|
11
|
+
hanami-events-cloud_pubsub (1.2.1)
|
|
13
12
|
dry-configurable (~> 0.7.0)
|
|
14
13
|
google-cloud-pubsub (~> 0.33.0)
|
|
15
14
|
hanami-cli (~> 0.2.0)
|
|
@@ -41,7 +40,7 @@ GEM
|
|
|
41
40
|
google-cloud-core (~> 1.2)
|
|
42
41
|
google-gax (~> 1.3)
|
|
43
42
|
grpc-google-iam-v1 (~> 0.6.9)
|
|
44
|
-
google-gax (1.
|
|
43
|
+
google-gax (1.4.0)
|
|
45
44
|
google-protobuf (~> 3.2)
|
|
46
45
|
googleapis-common-protos (>= 1.3.5, < 2.0)
|
|
47
46
|
googleauth (~> 0.6.2)
|
|
@@ -112,7 +111,7 @@ GEM
|
|
|
112
111
|
ruby-progressbar (~> 1.7)
|
|
113
112
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
114
113
|
ruby-progressbar (1.10.0)
|
|
115
|
-
signet (0.
|
|
114
|
+
signet (0.10.0)
|
|
116
115
|
addressable (~> 2.3)
|
|
117
116
|
faraday (~> 0.9)
|
|
118
117
|
jwt (>= 1.5, < 3.0)
|
|
@@ -139,4 +138,4 @@ DEPENDENCIES
|
|
|
139
138
|
simplecov
|
|
140
139
|
|
|
141
140
|
BUNDLED WITH
|
|
142
|
-
1.16.
|
|
141
|
+
1.16.5
|
data/README.md
CHANGED
|
@@ -49,6 +49,13 @@ Hanami.events.subscribe('user.deleted', id: 'my-subscriber-id') do |payload|
|
|
|
49
49
|
end
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
Additional options will be passed to `Google::Cloud::Pubsub::Subscription#listen`:
|
|
53
|
+
```ruby
|
|
54
|
+
Hanami.events.subscribe('foo', id: 'bar', deadline: 30) do |payload|
|
|
55
|
+
sleep 29 # message will finish before deadline
|
|
56
|
+
end
|
|
57
|
+
```
|
|
58
|
+
|
|
52
59
|
2. Responding to events is done in a different process via the CLI.
|
|
53
60
|
|
|
54
61
|
First, create a config file:
|
data/bin/rspec
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# This file was generated by Bundler.
|
|
6
|
+
#
|
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
|
8
|
+
# this file is here to facilitate running it.
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
require "pathname"
|
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
13
|
+
Pathname.new(__FILE__).realpath)
|
|
14
|
+
|
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
|
16
|
+
|
|
17
|
+
if File.file?(bundle_binstub)
|
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
|
19
|
+
load(bundle_binstub)
|
|
20
|
+
else
|
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
require "rubygems"
|
|
27
|
+
require "bundler/setup"
|
|
28
|
+
|
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|
|
@@ -39,14 +39,16 @@ module Hanami
|
|
|
39
39
|
# Subscribes block for selected event
|
|
40
40
|
#
|
|
41
41
|
# @param event_name [Symbol, String] the event name
|
|
42
|
+
# @param id [String] A unique identifier for the subscriber
|
|
43
|
+
# @param subscriber_opts [String] Additional options for the subscriber
|
|
42
44
|
# @param block [Block] to execute when event is broadcasted
|
|
43
|
-
def subscribe(event_name, id:, &block)
|
|
45
|
+
def subscribe(event_name, id:, **subscriber_opts, &block)
|
|
44
46
|
logger.debug("Subscribed listener \"#{id}\" for event \"#{event_name}\"")
|
|
45
47
|
|
|
46
48
|
@subscribers << Subscriber.new(event_name, block, logger)
|
|
47
49
|
topic = topic_for event_name
|
|
48
50
|
|
|
49
|
-
register_listener(event_name, topic, id)
|
|
51
|
+
register_listener(event_name, topic, id, subscriber_opts)
|
|
50
52
|
end
|
|
51
53
|
|
|
52
54
|
def flush_messages
|
|
@@ -58,13 +60,14 @@ module Hanami
|
|
|
58
60
|
|
|
59
61
|
attr_reader :logger
|
|
60
62
|
|
|
61
|
-
def register_listener(event_name, topic, subscriber_id)
|
|
63
|
+
def register_listener(event_name, topic, subscriber_id, subscriber_opts)
|
|
62
64
|
listener = ::Hanami::Events::CloudPubsub::Listener.new(
|
|
63
65
|
subscriber_id: subscriber_id,
|
|
64
66
|
event_name: event_name,
|
|
65
67
|
handler: method(:call_subscribers),
|
|
66
68
|
logger: logger,
|
|
67
|
-
topic: topic
|
|
69
|
+
topic: topic,
|
|
70
|
+
subscriber_opts: subscriber_opts
|
|
68
71
|
)
|
|
69
72
|
|
|
70
73
|
@listeners << listener
|
|
@@ -18,20 +18,23 @@ module Hanami
|
|
|
18
18
|
:subscriber_opts,
|
|
19
19
|
:middleware
|
|
20
20
|
|
|
21
|
+
# rubocop:disable Metrics/ParameterLists
|
|
21
22
|
def initialize(topic:,
|
|
22
23
|
logger:,
|
|
23
24
|
handler:,
|
|
24
25
|
event_name:,
|
|
25
26
|
subscriber_id:,
|
|
27
|
+
subscriber_opts: {},
|
|
26
28
|
middleware: CloudPubsub.config.middleware)
|
|
27
29
|
@topic = topic
|
|
28
30
|
@logger = logger
|
|
29
31
|
@handler = handler
|
|
30
32
|
@event_name = event_name
|
|
31
33
|
@subscriber_id = subscriber_id
|
|
32
|
-
@subscriber_opts = CloudPubsub.config.subscriber.to_h
|
|
34
|
+
@subscriber_opts = CloudPubsub.config.subscriber.to_h.merge(subscriber_opts)
|
|
33
35
|
@middleware = middleware
|
|
34
36
|
end
|
|
37
|
+
# rubocop:enable Metrics/ParameterLists
|
|
35
38
|
|
|
36
39
|
def register
|
|
37
40
|
subscription = subscription_for(subscriber_id)
|
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.2.
|
|
4
|
+
version: 1.2.1
|
|
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
|
+
date: 2018-10-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-configurable
|
|
@@ -128,6 +128,7 @@ files:
|
|
|
128
128
|
- README.md
|
|
129
129
|
- Rakefile
|
|
130
130
|
- bin/console
|
|
131
|
+
- bin/rspec
|
|
131
132
|
- bin/setup
|
|
132
133
|
- docker-compose.yml
|
|
133
134
|
- examples/client.rb
|
|
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
170
171
|
version: '0'
|
|
171
172
|
requirements: []
|
|
172
173
|
rubyforge_project:
|
|
173
|
-
rubygems_version: 2.
|
|
174
|
+
rubygems_version: 2.7.7
|
|
174
175
|
signing_key:
|
|
175
176
|
specification_version: 4
|
|
176
177
|
summary: Google Cloud Pub/Sub adapter for the hanami-events gem
|