cloudenvoy 0.4.2 → 0.6.rc1
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 +4 -4
- data/.github/workflows/lint_rubocop.yml +20 -0
- data/.github/workflows/{test.yml → test_ruby_2.5_2.6.yml} +8 -13
- data/.github/workflows/test_ruby_2.7.yml +36 -0
- data/.github/workflows/test_ruby_3.x.yml +35 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +17 -16
- data/Appraisals +24 -4
- data/CHANGELOG.md +18 -0
- data/README.md +39 -2
- data/cloudenvoy.gemspec +2 -6
- data/examples/rails/.ruby-version +1 -1
- data/examples/rails/Gemfile +4 -1
- data/examples/rails/Gemfile.lock +92 -85
- data/examples/rails/README.md +5 -1
- data/examples/rails/app/subscribers/hello_subscriber.rb +1 -1
- data/examples/rails/config/environments/production.rb +1 -1
- data/examples/rails/config/puma.rb +3 -3
- data/examples/sinatra/Gemfile +4 -1
- data/examples/sinatra/Gemfile.lock +40 -28
- data/examples/sinatra/README.md +4 -0
- data/examples/sinatra/app/subscribers/hello_subscriber.rb +1 -1
- data/examples/sinatra/app.rb +4 -4
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/rails_5.2.gemfile +1 -0
- data/gemfiles/rails_6.0.gemfile +1 -0
- data/gemfiles/rails_6.1.gemfile +8 -0
- data/gemfiles/rails_7.0.gemfile +8 -0
- data/gemfiles/semantic_logger_3.4.gemfile +1 -0
- data/gemfiles/semantic_logger_4.6.gemfile +1 -0
- data/gemfiles/semantic_logger_4.7.0.gemfile +1 -0
- data/gemfiles/semantic_logger_4.7.2.gemfile +1 -0
- data/lib/cloudenvoy/backend/google_pub_sub.rb +37 -5
- data/lib/cloudenvoy/backend/memory_pub_sub.rb +25 -1
- data/lib/cloudenvoy/config.rb +1 -1
- data/lib/cloudenvoy/message.rb +2 -2
- data/lib/cloudenvoy/pub_sub_client.rb +13 -1
- data/lib/cloudenvoy/publisher.rb +39 -5
- data/lib/cloudenvoy/publisher_logger.rb +1 -1
- data/lib/cloudenvoy/version.rb +1 -1
- data/lib/cloudenvoy.rb +13 -0
- metadata +15 -57
- data/gemfiles/rails_5.2.gemfile.lock +0 -264
- data/gemfiles/rails_6.0.gemfile.lock +0 -280
- data/gemfiles/semantic_logger_3.4.gemfile.lock +0 -279
- data/gemfiles/semantic_logger_4.6.gemfile.lock +0 -279
- data/gemfiles/semantic_logger_4.7.0.gemfile.lock +0 -279
- data/gemfiles/semantic_logger_4.7.2.gemfile.lock +0 -279
data/examples/rails/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../..
|
3
3
|
specs:
|
4
|
-
cloudenvoy (0.
|
4
|
+
cloudenvoy (0.5.0)
|
5
5
|
activesupport
|
6
6
|
google-cloud-pubsub (~> 2.0)
|
7
7
|
jwt
|
@@ -10,56 +10,56 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
actioncable (6.0.4.
|
14
|
-
actionpack (= 6.0.4.
|
13
|
+
actioncable (6.0.4.7)
|
14
|
+
actionpack (= 6.0.4.7)
|
15
15
|
nio4r (~> 2.0)
|
16
16
|
websocket-driver (>= 0.6.1)
|
17
|
-
actionmailbox (6.0.4.
|
18
|
-
actionpack (= 6.0.4.
|
19
|
-
activejob (= 6.0.4.
|
20
|
-
activerecord (= 6.0.4.
|
21
|
-
activestorage (= 6.0.4.
|
22
|
-
activesupport (= 6.0.4.
|
17
|
+
actionmailbox (6.0.4.7)
|
18
|
+
actionpack (= 6.0.4.7)
|
19
|
+
activejob (= 6.0.4.7)
|
20
|
+
activerecord (= 6.0.4.7)
|
21
|
+
activestorage (= 6.0.4.7)
|
22
|
+
activesupport (= 6.0.4.7)
|
23
23
|
mail (>= 2.7.1)
|
24
|
-
actionmailer (6.0.4.
|
25
|
-
actionpack (= 6.0.4.
|
26
|
-
actionview (= 6.0.4.
|
27
|
-
activejob (= 6.0.4.
|
24
|
+
actionmailer (6.0.4.7)
|
25
|
+
actionpack (= 6.0.4.7)
|
26
|
+
actionview (= 6.0.4.7)
|
27
|
+
activejob (= 6.0.4.7)
|
28
28
|
mail (~> 2.5, >= 2.5.4)
|
29
29
|
rails-dom-testing (~> 2.0)
|
30
|
-
actionpack (6.0.4.
|
31
|
-
actionview (= 6.0.4.
|
32
|
-
activesupport (= 6.0.4.
|
30
|
+
actionpack (6.0.4.7)
|
31
|
+
actionview (= 6.0.4.7)
|
32
|
+
activesupport (= 6.0.4.7)
|
33
33
|
rack (~> 2.0, >= 2.0.8)
|
34
34
|
rack-test (>= 0.6.3)
|
35
35
|
rails-dom-testing (~> 2.0)
|
36
36
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
37
|
-
actiontext (6.0.4.
|
38
|
-
actionpack (= 6.0.4.
|
39
|
-
activerecord (= 6.0.4.
|
40
|
-
activestorage (= 6.0.4.
|
41
|
-
activesupport (= 6.0.4.
|
37
|
+
actiontext (6.0.4.7)
|
38
|
+
actionpack (= 6.0.4.7)
|
39
|
+
activerecord (= 6.0.4.7)
|
40
|
+
activestorage (= 6.0.4.7)
|
41
|
+
activesupport (= 6.0.4.7)
|
42
42
|
nokogiri (>= 1.8.5)
|
43
|
-
actionview (6.0.4.
|
44
|
-
activesupport (= 6.0.4.
|
43
|
+
actionview (6.0.4.7)
|
44
|
+
activesupport (= 6.0.4.7)
|
45
45
|
builder (~> 3.1)
|
46
46
|
erubi (~> 1.4)
|
47
47
|
rails-dom-testing (~> 2.0)
|
48
48
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
49
|
-
activejob (6.0.4.
|
50
|
-
activesupport (= 6.0.4.
|
49
|
+
activejob (6.0.4.7)
|
50
|
+
activesupport (= 6.0.4.7)
|
51
51
|
globalid (>= 0.3.6)
|
52
|
-
activemodel (6.0.4.
|
53
|
-
activesupport (= 6.0.4.
|
54
|
-
activerecord (6.0.4.
|
55
|
-
activemodel (= 6.0.4.
|
56
|
-
activesupport (= 6.0.4.
|
57
|
-
activestorage (6.0.4.
|
58
|
-
actionpack (= 6.0.4.
|
59
|
-
activejob (= 6.0.4.
|
60
|
-
activerecord (= 6.0.4.
|
52
|
+
activemodel (6.0.4.7)
|
53
|
+
activesupport (= 6.0.4.7)
|
54
|
+
activerecord (6.0.4.7)
|
55
|
+
activemodel (= 6.0.4.7)
|
56
|
+
activesupport (= 6.0.4.7)
|
57
|
+
activestorage (6.0.4.7)
|
58
|
+
actionpack (= 6.0.4.7)
|
59
|
+
activejob (= 6.0.4.7)
|
60
|
+
activerecord (= 6.0.4.7)
|
61
61
|
marcel (~> 1.0.0)
|
62
|
-
activesupport (6.0.4.
|
62
|
+
activesupport (6.0.4.7)
|
63
63
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
64
64
|
i18n (>= 0.7, < 2)
|
65
65
|
minitest (~> 5.1)
|
@@ -71,33 +71,37 @@ GEM
|
|
71
71
|
concurrent-ruby (1.1.9)
|
72
72
|
crass (1.0.6)
|
73
73
|
erubi (1.10.0)
|
74
|
-
faraday (1.
|
74
|
+
faraday (1.10.0)
|
75
75
|
faraday-em_http (~> 1.0)
|
76
76
|
faraday-em_synchrony (~> 1.0)
|
77
77
|
faraday-excon (~> 1.1)
|
78
|
-
faraday-httpclient (~> 1.0
|
78
|
+
faraday-httpclient (~> 1.0)
|
79
|
+
faraday-multipart (~> 1.0)
|
79
80
|
faraday-net_http (~> 1.0)
|
80
|
-
faraday-net_http_persistent (~> 1.
|
81
|
+
faraday-net_http_persistent (~> 1.0)
|
81
82
|
faraday-patron (~> 1.0)
|
82
83
|
faraday-rack (~> 1.0)
|
83
|
-
|
84
|
+
faraday-retry (~> 1.0)
|
84
85
|
ruby2_keywords (>= 0.0.4)
|
85
86
|
faraday-em_http (1.0.0)
|
86
87
|
faraday-em_synchrony (1.0.0)
|
87
88
|
faraday-excon (1.1.0)
|
88
89
|
faraday-httpclient (1.0.1)
|
90
|
+
faraday-multipart (1.0.3)
|
91
|
+
multipart-post (>= 1.2, < 3)
|
89
92
|
faraday-net_http (1.0.1)
|
90
93
|
faraday-net_http_persistent (1.2.0)
|
91
94
|
faraday-patron (1.0.0)
|
92
95
|
faraday-rack (1.0.0)
|
93
|
-
|
96
|
+
faraday-retry (1.0.3)
|
97
|
+
gapic-common (0.8.0)
|
94
98
|
faraday (~> 1.3)
|
95
99
|
google-protobuf (~> 3.14)
|
96
100
|
googleapis-common-protos (>= 1.3.11, < 2.a)
|
97
101
|
googleapis-common-protos-types (>= 1.0.6, < 2.a)
|
98
102
|
googleauth (>= 0.17.0, < 2.a)
|
99
103
|
grpc (~> 1.36)
|
100
|
-
globalid (0.
|
104
|
+
globalid (1.0.0)
|
101
105
|
activesupport (>= 5.0)
|
102
106
|
google-cloud-core (1.6.0)
|
103
107
|
google-cloud-env (~> 1.0)
|
@@ -105,39 +109,39 @@ GEM
|
|
105
109
|
google-cloud-env (1.5.0)
|
106
110
|
faraday (>= 0.17.3, < 2.0)
|
107
111
|
google-cloud-errors (1.2.0)
|
108
|
-
google-cloud-pubsub (2.
|
112
|
+
google-cloud-pubsub (2.9.1)
|
109
113
|
concurrent-ruby (~> 1.1)
|
110
114
|
google-cloud-core (~> 1.5)
|
111
115
|
google-cloud-pubsub-v1 (~> 0.0)
|
112
|
-
google-cloud-pubsub-v1 (0.
|
116
|
+
google-cloud-pubsub-v1 (0.7.1)
|
113
117
|
gapic-common (>= 0.7, < 2.a)
|
114
118
|
google-cloud-errors (~> 1.0)
|
115
119
|
grpc-google-iam-v1 (>= 0.6.10, < 2.a)
|
116
|
-
google-protobuf (3.
|
120
|
+
google-protobuf (3.19.4)
|
117
121
|
googleapis-common-protos (1.3.12)
|
118
122
|
google-protobuf (~> 3.14)
|
119
123
|
googleapis-common-protos-types (~> 1.2)
|
120
124
|
grpc (~> 1.27)
|
121
|
-
googleapis-common-protos-types (1.
|
125
|
+
googleapis-common-protos-types (1.3.0)
|
122
126
|
google-protobuf (~> 3.14)
|
123
|
-
googleauth (1.
|
124
|
-
faraday (>= 0.17.3, <
|
127
|
+
googleauth (1.1.2)
|
128
|
+
faraday (>= 0.17.3, < 3.a)
|
125
129
|
jwt (>= 1.4, < 3.0)
|
126
130
|
memoist (~> 0.16)
|
127
131
|
multi_json (~> 1.11)
|
128
132
|
os (>= 0.9, < 2.0)
|
129
133
|
signet (>= 0.16, < 2.a)
|
130
|
-
grpc (1.
|
131
|
-
google-protobuf (~> 3.
|
134
|
+
grpc (1.43.1)
|
135
|
+
google-protobuf (~> 3.18)
|
132
136
|
googleapis-common-protos-types (~> 1.0)
|
133
137
|
grpc-google-iam-v1 (1.0.0)
|
134
138
|
google-protobuf (~> 3.14)
|
135
139
|
googleapis-common-protos (>= 1.3.12, < 2.0)
|
136
140
|
grpc (~> 1.27)
|
137
|
-
i18n (1.
|
141
|
+
i18n (1.10.0)
|
138
142
|
concurrent-ruby (~> 1.0)
|
139
|
-
jwt (2.
|
140
|
-
loofah (2.
|
143
|
+
jwt (2.3.0)
|
144
|
+
loofah (2.14.0)
|
141
145
|
crass (~> 1.0.2)
|
142
146
|
nokogiri (>= 1.5.9)
|
143
147
|
mail (2.7.1)
|
@@ -145,82 +149,85 @@ GEM
|
|
145
149
|
marcel (1.0.2)
|
146
150
|
memoist (0.16.2)
|
147
151
|
method_source (1.0.0)
|
148
|
-
mini_mime (1.1.
|
149
|
-
mini_portile2 (2.
|
150
|
-
minitest (5.
|
152
|
+
mini_mime (1.1.2)
|
153
|
+
mini_portile2 (2.8.0)
|
154
|
+
minitest (5.15.0)
|
151
155
|
multi_json (1.15.0)
|
152
156
|
multipart-post (2.1.1)
|
153
157
|
nio4r (2.5.8)
|
154
|
-
nokogiri (1.
|
155
|
-
mini_portile2 (~> 2.
|
158
|
+
nokogiri (1.13.3)
|
159
|
+
mini_portile2 (~> 2.8.0)
|
156
160
|
racc (~> 1.4)
|
157
|
-
os (1.1.
|
161
|
+
os (1.1.4)
|
158
162
|
public_suffix (4.0.6)
|
159
|
-
|
163
|
+
puma (5.6.4)
|
164
|
+
nio4r (~> 2.0)
|
165
|
+
racc (1.6.0)
|
160
166
|
rack (2.2.3)
|
161
167
|
rack-test (1.1.0)
|
162
168
|
rack (>= 1.0, < 3)
|
163
|
-
rails (6.0.4.
|
164
|
-
actioncable (= 6.0.4.
|
165
|
-
actionmailbox (= 6.0.4.
|
166
|
-
actionmailer (= 6.0.4.
|
167
|
-
actionpack (= 6.0.4.
|
168
|
-
actiontext (= 6.0.4.
|
169
|
-
actionview (= 6.0.4.
|
170
|
-
activejob (= 6.0.4.
|
171
|
-
activemodel (= 6.0.4.
|
172
|
-
activerecord (= 6.0.4.
|
173
|
-
activestorage (= 6.0.4.
|
174
|
-
activesupport (= 6.0.4.
|
169
|
+
rails (6.0.4.7)
|
170
|
+
actioncable (= 6.0.4.7)
|
171
|
+
actionmailbox (= 6.0.4.7)
|
172
|
+
actionmailer (= 6.0.4.7)
|
173
|
+
actionpack (= 6.0.4.7)
|
174
|
+
actiontext (= 6.0.4.7)
|
175
|
+
actionview (= 6.0.4.7)
|
176
|
+
activejob (= 6.0.4.7)
|
177
|
+
activemodel (= 6.0.4.7)
|
178
|
+
activerecord (= 6.0.4.7)
|
179
|
+
activestorage (= 6.0.4.7)
|
180
|
+
activesupport (= 6.0.4.7)
|
175
181
|
bundler (>= 1.3.0)
|
176
|
-
railties (= 6.0.4.
|
182
|
+
railties (= 6.0.4.7)
|
177
183
|
sprockets-rails (>= 2.0.0)
|
178
184
|
rails-dom-testing (2.0.3)
|
179
185
|
activesupport (>= 4.2.0)
|
180
186
|
nokogiri (>= 1.6)
|
181
187
|
rails-html-sanitizer (1.4.2)
|
182
188
|
loofah (~> 2.3)
|
183
|
-
railties (6.0.4.
|
184
|
-
actionpack (= 6.0.4.
|
185
|
-
activesupport (= 6.0.4.
|
189
|
+
railties (6.0.4.7)
|
190
|
+
actionpack (= 6.0.4.7)
|
191
|
+
activesupport (= 6.0.4.7)
|
186
192
|
method_source
|
187
193
|
rake (>= 0.8.7)
|
188
194
|
thor (>= 0.20.3, < 2.0)
|
189
195
|
rake (13.0.6)
|
190
196
|
retriable (3.1.2)
|
191
197
|
ruby2_keywords (0.0.5)
|
192
|
-
signet (0.16.
|
198
|
+
signet (0.16.1)
|
193
199
|
addressable (~> 2.8)
|
194
|
-
faraday (>= 0.17.
|
200
|
+
faraday (>= 0.17.5, < 3.0)
|
195
201
|
jwt (>= 1.5, < 3.0)
|
196
202
|
multi_json (~> 1.10)
|
197
|
-
sprockets (4.0.
|
203
|
+
sprockets (4.0.3)
|
198
204
|
concurrent-ruby (~> 1.0)
|
199
205
|
rack (> 1, < 3)
|
200
|
-
sprockets-rails (3.
|
201
|
-
actionpack (>=
|
202
|
-
activesupport (>=
|
206
|
+
sprockets-rails (3.4.2)
|
207
|
+
actionpack (>= 5.2)
|
208
|
+
activesupport (>= 5.2)
|
203
209
|
sprockets (>= 3.0.0)
|
204
210
|
sqlite3 (1.4.2)
|
205
|
-
thor (1.1
|
211
|
+
thor (1.2.1)
|
206
212
|
thread_safe (0.3.6)
|
207
213
|
tzinfo (1.2.9)
|
208
214
|
thread_safe (~> 0.1)
|
209
215
|
websocket-driver (0.7.5)
|
210
216
|
websocket-extensions (>= 0.1.0)
|
211
217
|
websocket-extensions (0.1.5)
|
212
|
-
zeitwerk (2.4
|
218
|
+
zeitwerk (2.5.4)
|
213
219
|
|
214
220
|
PLATFORMS
|
215
221
|
ruby
|
216
222
|
|
217
223
|
DEPENDENCIES
|
218
224
|
cloudenvoy!
|
225
|
+
puma (~> 5.6.4)
|
219
226
|
rails (~> 6.0.2)
|
220
227
|
sqlite3
|
221
228
|
|
222
229
|
RUBY VERSION
|
223
|
-
ruby
|
230
|
+
ruby 3.0.0p0
|
224
231
|
|
225
232
|
BUNDLED WITH
|
226
|
-
2.
|
233
|
+
2.3.4
|
data/examples/rails/README.md
CHANGED
@@ -12,6 +12,10 @@
|
|
12
12
|
HelloPublisher.publish('Some message')
|
13
13
|
```
|
14
14
|
7. Tail the logs to see how message get processed by `HelloSubscriber`
|
15
|
+
8. Try sending multiple messages at once:
|
16
|
+
```ruby
|
17
|
+
HelloPublisher.publish_all(['message1', 'message2', 'message3'])
|
18
|
+
```
|
15
19
|
|
16
20
|
## Run using GCP Pub/Sub
|
17
21
|
|
@@ -22,7 +26,7 @@ HelloPublisher.publish('Some message')
|
|
22
26
|
* Add the configuration of your GCP Pub/Sub
|
23
27
|
* Set `config.processor_host` to the ngrok http or https url
|
24
28
|
* Set `config.mode` to `:production`
|
25
|
-
5. Launch the server: `foreman start
|
29
|
+
5. Launch the server: `foreman start`
|
26
30
|
6. Open a Rails console: `rails c`
|
27
31
|
7. Publish messages
|
28
32
|
```ruby
|
@@ -11,6 +11,6 @@ class HelloSubscriber
|
|
11
11
|
# @param [Cloudenvoy::Message] message The message to process.
|
12
12
|
#
|
13
13
|
def process(message)
|
14
|
-
logger.info("Received message #{message.payload
|
14
|
+
logger.info("Received message #{message.payload['content']}")
|
15
15
|
end
|
16
16
|
end
|
@@ -83,7 +83,7 @@ Rails.application.configure do
|
|
83
83
|
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
84
84
|
|
85
85
|
if ENV['RAILS_LOG_TO_STDOUT'].present?
|
86
|
-
logger = ActiveSupport::Logger.new(
|
86
|
+
logger = ActiveSupport::Logger.new($stdout)
|
87
87
|
logger.formatter = config.log_formatter
|
88
88
|
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
89
89
|
end
|
@@ -6,17 +6,17 @@
|
|
6
6
|
# the maximum value specified for Puma. Default is set to 5 threads for minimum
|
7
7
|
# and maximum; this matches the default thread size of Active Record.
|
8
8
|
#
|
9
|
-
max_threads_count = ENV.fetch('RAILS_MAX_THREADS'
|
9
|
+
max_threads_count = ENV.fetch('RAILS_MAX_THREADS', 5)
|
10
10
|
min_threads_count = ENV.fetch('RAILS_MIN_THREADS') { max_threads_count }
|
11
11
|
threads min_threads_count, max_threads_count
|
12
12
|
|
13
13
|
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
|
14
14
|
#
|
15
|
-
port ENV.fetch('PORT'
|
15
|
+
port ENV.fetch('PORT', 3000)
|
16
16
|
|
17
17
|
# Specifies the `environment` that Puma will run in.
|
18
18
|
#
|
19
|
-
environment ENV.fetch('RAILS_ENV'
|
19
|
+
environment ENV.fetch('RAILS_ENV', 'development')
|
20
20
|
|
21
21
|
# Specifies the number of `workers` to boot in clustered mode.
|
22
22
|
# Workers are forked web server processes. If using threads and workers together
|
data/examples/sinatra/Gemfile
CHANGED
@@ -3,11 +3,14 @@
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
5
5
|
|
6
|
-
ruby '
|
6
|
+
ruby '3.0.0'
|
7
7
|
|
8
8
|
# Web framework
|
9
9
|
gem 'sinatra'
|
10
10
|
|
11
|
+
# Server
|
12
|
+
gem 'puma', '~> 5.6.4'
|
13
|
+
|
11
14
|
# Support rake tasks
|
12
15
|
gem 'rake'
|
13
16
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../..
|
3
3
|
specs:
|
4
|
-
cloudenvoy (0.
|
4
|
+
cloudenvoy (0.5.0)
|
5
5
|
activesupport
|
6
6
|
google-cloud-pubsub (~> 2.0)
|
7
7
|
jwt
|
@@ -10,35 +10,38 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
activesupport (
|
13
|
+
activesupport (7.0.2.3)
|
14
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
15
15
|
i18n (>= 1.6, < 2)
|
16
16
|
minitest (>= 5.1)
|
17
17
|
tzinfo (~> 2.0)
|
18
|
-
zeitwerk (~> 2.3)
|
19
18
|
addressable (2.8.0)
|
20
19
|
public_suffix (>= 2.0.2, < 5.0)
|
21
20
|
concurrent-ruby (1.1.9)
|
22
|
-
faraday (1.
|
21
|
+
faraday (1.10.0)
|
23
22
|
faraday-em_http (~> 1.0)
|
24
23
|
faraday-em_synchrony (~> 1.0)
|
25
24
|
faraday-excon (~> 1.1)
|
26
|
-
faraday-httpclient (~> 1.0
|
25
|
+
faraday-httpclient (~> 1.0)
|
26
|
+
faraday-multipart (~> 1.0)
|
27
27
|
faraday-net_http (~> 1.0)
|
28
|
-
faraday-net_http_persistent (~> 1.
|
28
|
+
faraday-net_http_persistent (~> 1.0)
|
29
29
|
faraday-patron (~> 1.0)
|
30
30
|
faraday-rack (~> 1.0)
|
31
|
-
|
31
|
+
faraday-retry (~> 1.0)
|
32
32
|
ruby2_keywords (>= 0.0.4)
|
33
33
|
faraday-em_http (1.0.0)
|
34
34
|
faraday-em_synchrony (1.0.0)
|
35
35
|
faraday-excon (1.1.0)
|
36
36
|
faraday-httpclient (1.0.1)
|
37
|
+
faraday-multipart (1.0.3)
|
38
|
+
multipart-post (>= 1.2, < 3)
|
37
39
|
faraday-net_http (1.0.1)
|
38
40
|
faraday-net_http_persistent (1.2.0)
|
39
41
|
faraday-patron (1.0.0)
|
40
42
|
faraday-rack (1.0.0)
|
41
|
-
|
43
|
+
faraday-retry (1.0.3)
|
44
|
+
gapic-common (0.8.0)
|
42
45
|
faraday (~> 1.3)
|
43
46
|
google-protobuf (~> 3.14)
|
44
47
|
googleapis-common-protos (>= 1.3.11, < 2.a)
|
@@ -51,77 +54,86 @@ GEM
|
|
51
54
|
google-cloud-env (1.5.0)
|
52
55
|
faraday (>= 0.17.3, < 2.0)
|
53
56
|
google-cloud-errors (1.2.0)
|
54
|
-
google-cloud-pubsub (2.
|
57
|
+
google-cloud-pubsub (2.9.1)
|
55
58
|
concurrent-ruby (~> 1.1)
|
56
59
|
google-cloud-core (~> 1.5)
|
57
60
|
google-cloud-pubsub-v1 (~> 0.0)
|
58
|
-
google-cloud-pubsub-v1 (0.
|
61
|
+
google-cloud-pubsub-v1 (0.7.1)
|
59
62
|
gapic-common (>= 0.7, < 2.a)
|
60
63
|
google-cloud-errors (~> 1.0)
|
61
64
|
grpc-google-iam-v1 (>= 0.6.10, < 2.a)
|
62
|
-
google-protobuf (3.
|
65
|
+
google-protobuf (3.19.4-x86_64-darwin)
|
66
|
+
google-protobuf (3.19.4-x86_64-linux)
|
63
67
|
googleapis-common-protos (1.3.12)
|
64
68
|
google-protobuf (~> 3.14)
|
65
69
|
googleapis-common-protos-types (~> 1.2)
|
66
70
|
grpc (~> 1.27)
|
67
|
-
googleapis-common-protos-types (1.
|
71
|
+
googleapis-common-protos-types (1.3.0)
|
68
72
|
google-protobuf (~> 3.14)
|
69
|
-
googleauth (1.
|
70
|
-
faraday (>= 0.17.3, <
|
73
|
+
googleauth (1.1.2)
|
74
|
+
faraday (>= 0.17.3, < 3.a)
|
71
75
|
jwt (>= 1.4, < 3.0)
|
72
76
|
memoist (~> 0.16)
|
73
77
|
multi_json (~> 1.11)
|
74
78
|
os (>= 0.9, < 2.0)
|
75
79
|
signet (>= 0.16, < 2.a)
|
76
|
-
grpc (1.
|
77
|
-
google-protobuf (~> 3.
|
80
|
+
grpc (1.43.1-universal-darwin)
|
81
|
+
google-protobuf (~> 3.18)
|
82
|
+
googleapis-common-protos-types (~> 1.0)
|
83
|
+
grpc (1.43.1-x86_64-linux)
|
84
|
+
google-protobuf (~> 3.18)
|
78
85
|
googleapis-common-protos-types (~> 1.0)
|
79
86
|
grpc-google-iam-v1 (1.0.0)
|
80
87
|
google-protobuf (~> 3.14)
|
81
88
|
googleapis-common-protos (>= 1.3.12, < 2.0)
|
82
89
|
grpc (~> 1.27)
|
83
|
-
i18n (1.
|
90
|
+
i18n (1.10.0)
|
84
91
|
concurrent-ruby (~> 1.0)
|
85
|
-
jwt (2.
|
92
|
+
jwt (2.3.0)
|
86
93
|
memoist (0.16.2)
|
87
|
-
minitest (5.
|
94
|
+
minitest (5.15.0)
|
88
95
|
multi_json (1.15.0)
|
89
96
|
multipart-post (2.1.1)
|
90
97
|
mustermann (1.1.1)
|
91
98
|
ruby2_keywords (~> 0.0.1)
|
92
|
-
|
99
|
+
nio4r (2.5.8)
|
100
|
+
os (1.1.4)
|
93
101
|
public_suffix (4.0.6)
|
102
|
+
puma (5.6.4)
|
103
|
+
nio4r (~> 2.0)
|
94
104
|
rack (2.2.3)
|
95
|
-
rack-protection (2.
|
105
|
+
rack-protection (2.2.0)
|
96
106
|
rack
|
97
107
|
rake (13.0.6)
|
98
108
|
retriable (3.1.2)
|
99
109
|
ruby2_keywords (0.0.5)
|
100
|
-
signet (0.16.
|
110
|
+
signet (0.16.1)
|
101
111
|
addressable (~> 2.8)
|
102
|
-
faraday (>= 0.17.
|
112
|
+
faraday (>= 0.17.5, < 3.0)
|
103
113
|
jwt (>= 1.5, < 3.0)
|
104
114
|
multi_json (~> 1.10)
|
105
|
-
sinatra (2.
|
115
|
+
sinatra (2.2.0)
|
106
116
|
mustermann (~> 1.0)
|
107
117
|
rack (~> 2.2)
|
108
|
-
rack-protection (= 2.
|
118
|
+
rack-protection (= 2.2.0)
|
109
119
|
tilt (~> 2.0)
|
110
120
|
tilt (2.0.10)
|
111
121
|
tzinfo (2.0.4)
|
112
122
|
concurrent-ruby (~> 1.0)
|
113
|
-
zeitwerk (2.4.2)
|
114
123
|
|
115
124
|
PLATFORMS
|
116
125
|
x86_64-darwin-17
|
126
|
+
x86_64-darwin-19
|
127
|
+
x86_64-linux
|
117
128
|
|
118
129
|
DEPENDENCIES
|
119
130
|
cloudenvoy!
|
131
|
+
puma (~> 5.6.4)
|
120
132
|
rake
|
121
133
|
sinatra
|
122
134
|
|
123
135
|
RUBY VERSION
|
124
|
-
ruby
|
136
|
+
ruby 3.0.0p0
|
125
137
|
|
126
138
|
BUNDLED WITH
|
127
|
-
2.
|
139
|
+
2.3.4
|
data/examples/sinatra/README.md
CHANGED
@@ -17,6 +17,10 @@ Cloudenvoy.setup_subscribers
|
|
17
17
|
HelloPublisher.publish('Some message')
|
18
18
|
```
|
19
19
|
8. Tail the logs to see how message get processed by `HelloSubscriber`
|
20
|
+
9. Try sending multiple messages at once:
|
21
|
+
```ruby
|
22
|
+
HelloPublisher.publish_all(['message1', 'message2', 'message3'])
|
23
|
+
```
|
20
24
|
|
21
25
|
## Run using GCP Pub/Sub
|
22
26
|
|
@@ -11,6 +11,6 @@ class HelloSubscriber
|
|
11
11
|
# @param [Cloudenvoy::Message] message The message to process.
|
12
12
|
#
|
13
13
|
def process(message)
|
14
|
-
logger.info("Received message #{message.payload
|
14
|
+
logger.info("Received message #{message.payload['content']}")
|
15
15
|
end
|
16
16
|
end
|
data/examples/sinatra/app.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Force logging to be realtime
|
4
|
-
|
4
|
+
$stdout.sync = true
|
5
5
|
|
6
6
|
# Require project files
|
7
7
|
require 'sinatra'
|
8
|
-
Dir.glob('./config/initializers/*.rb').each { |file| require file }
|
9
|
-
Dir.glob('./app/publishers/*.rb').each { |file| require file }
|
10
|
-
Dir.glob('./app/subscribers/*.rb').each { |file| require file }
|
8
|
+
Dir.glob('./config/initializers/*.rb').sort.each { |file| require file }
|
9
|
+
Dir.glob('./app/publishers/*.rb').sort.each { |file| require file }
|
10
|
+
Dir.glob('./app/subscribers/*.rb').sort.each { |file| require file }
|
11
11
|
|
12
12
|
#---------------------------------------------------
|
13
13
|
# Routes
|
data/gemfiles/rails_5.2.gemfile
CHANGED
data/gemfiles/rails_6.0.gemfile
CHANGED