cloudenvoy 0.3.0 → 0.4.2

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +4 -0
  3. data/.gitignore +3 -0
  4. data/Appraisals +16 -0
  5. data/CHANGELOG.md +29 -0
  6. data/README.md +4 -4
  7. data/app/controllers/cloudenvoy/subscriber_controller.rb +6 -5
  8. data/cloudenvoy.gemspec +1 -0
  9. data/examples/rails/Gemfile.lock +125 -106
  10. data/examples/sinatra/Gemfile +15 -0
  11. data/examples/sinatra/Gemfile.lock +127 -0
  12. data/examples/sinatra/Procfile +1 -0
  13. data/examples/sinatra/README.md +41 -0
  14. data/examples/sinatra/app/publishers/hello_publisher.rb +34 -0
  15. data/examples/sinatra/app/subscribers/hello_subscriber.rb +16 -0
  16. data/examples/sinatra/app.rb +40 -0
  17. data/examples/sinatra/bin/console +8 -0
  18. data/examples/sinatra/config/initializers/cloudenvoy.rb +30 -0
  19. data/gemfiles/rails_5.2.gemfile.lock +89 -73
  20. data/gemfiles/rails_6.0.gemfile.lock +90 -74
  21. data/gemfiles/semantic_logger_3.4.gemfile +7 -0
  22. data/gemfiles/semantic_logger_3.4.gemfile.lock +279 -0
  23. data/gemfiles/semantic_logger_4.6.gemfile +7 -0
  24. data/gemfiles/semantic_logger_4.6.gemfile.lock +279 -0
  25. data/gemfiles/semantic_logger_4.7.0.gemfile +7 -0
  26. data/gemfiles/semantic_logger_4.7.0.gemfile.lock +279 -0
  27. data/gemfiles/semantic_logger_4.7.2.gemfile +7 -0
  28. data/gemfiles/semantic_logger_4.7.2.gemfile.lock +279 -0
  29. data/lib/cloudenvoy/backend/google_pub_sub.rb +16 -1
  30. data/lib/cloudenvoy/logger_wrapper.rb +1 -1
  31. data/lib/cloudenvoy/message.rb +2 -2
  32. data/lib/cloudenvoy/publisher.rb +1 -0
  33. data/lib/cloudenvoy/subscriber.rb +3 -2
  34. data/lib/cloudenvoy/version.rb +1 -1
  35. data/lib/generators/cloudenvoy/publisher_generator.rb +46 -0
  36. data/lib/generators/cloudenvoy/subscriber_generator.rb +46 -0
  37. data/lib/generators/cloudenvoy/templates/publisher.rb.erb +11 -0
  38. data/lib/generators/cloudenvoy/templates/publisher_spec.rb.erb +6 -0
  39. data/lib/generators/cloudenvoy/templates/subscriber.rb.erb +11 -0
  40. data/lib/generators/cloudenvoy/templates/subscriber_spec.rb.erb +6 -0
  41. data/lib/tasks/cloudenvoy.rake +4 -4
  42. metadata +42 -7
  43. data/Gemfile.lock +0 -264
  44. data/app/controllers/cloudenvoy/application_controller.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11748609c85a5b715ad36310318e28930ea9ce05ad4716f7ef09de4295c3d2c7
4
- data.tar.gz: 34251b0947169a81f39a162a437a9070ccf61311d4f13e1e1e3fb82010a6d24d
3
+ metadata.gz: 41639ae4ee8dd10d46e88233f3a4ceb028968e01f5b173fd798cfffe19ae0b48
4
+ data.tar.gz: 311ca0ebb0dd52abc523ffe351b5916bed9794ebb2ce2246bc8d517220f3b539
5
5
  SHA512:
6
- metadata.gz: 3df950d144f1b7cd98b7f69eb880fab5ab46bc3dfb19835c68b643a481208439cd8a241af7e723671f8889be40cc732f6769ce904f41b5d3bd9e364833b97af4
7
- data.tar.gz: 44ed54ea2fb8171088613244bb74c1ce561398cb1a55dbf12092f974692838d8f6b2e5503366bb774f275fdce653eea4471fcdfd45f2cf008af92738f18c75ac
6
+ metadata.gz: a7a8cf4f967e6a63e03878ab8656e20598cdfba01de979b4daeb82b500bbc5a92eb3a424fd6c7893f60e69e14028bd25d78d6780c2485f1362d1551de30ef6d9
7
+ data.tar.gz: f25628e0693c6fa7d1cfaedcff7a0fe3085af7a30bb8186dfa9e7af919c08300bb755ae6e75ffaaa545623a63e8a76f8b0fda8d9968eef05ced0a3fa23f96cb1
@@ -17,6 +17,10 @@ jobs:
17
17
  appraisal:
18
18
  - 'rails-5.2'
19
19
  - 'rails-6.0'
20
+ - 'semantic_logger-3.4'
21
+ - 'semantic_logger-4.6'
22
+ - 'semantic_logger-4.7.0'
23
+ - 'semantic_logger-4.7.2'
20
24
  steps:
21
25
  - name: Setup System
22
26
  run: sudo apt-get install libsqlite3-dev
data/.gitignore CHANGED
@@ -10,5 +10,8 @@
10
10
  /tmp/
11
11
  /log/*.log
12
12
 
13
+ # Ignore lock files (e.g. Gemfile.lock)
14
+ *.lock
15
+
13
16
  # rspec failure tracking
14
17
  .rspec_status
data/Appraisals CHANGED
@@ -7,3 +7,19 @@ end
7
7
  appraise 'rails-6.0' do
8
8
  gem 'rails', '6.0'
9
9
  end
10
+
11
+ appraise 'semantic_logger-3.4' do
12
+ gem 'semantic_logger', '3.4.1'
13
+ end
14
+
15
+ appraise 'semantic_logger-4.6' do
16
+ gem 'semantic_logger', '4.6.1'
17
+ end
18
+
19
+ appraise 'semantic_logger-4.7.0' do
20
+ gem 'semantic_logger', '4.7.0'
21
+ end
22
+
23
+ appraise 'semantic_logger-4.7.2' do
24
+ gem 'semantic_logger', '4.7.2'
25
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.4.2](https://github.com/keypup-io/cloudenvoy/tree/v0.4.2) (2021-10-25)
4
+
5
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.4.1...v0.4.2)
6
+
7
+ **Bug fix:**
8
+ - Message processing: fix subscription parsing for topic names with dots.
9
+
10
+ ## [v0.4.1](https://github.com/keypup-io/cloudenvoy/tree/v0.4.1) (2020-10-06)
11
+
12
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.4.0...v0.4.1)
13
+
14
+ **Bug fix:**
15
+ - Logging: log publisher and subscriber errors during execution
16
+ - Rake tasks: fix early return statement when publisher or subscriber list is empty
17
+
18
+ ## [v0.4.0](https://github.com/keypup-io/cloudenvoy/tree/v0.4.0) (2020-10-05)
19
+
20
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.3.1...v0.4.0)
21
+
22
+ **Bug fix:**
23
+ - Logging: fix log processing with `semantic_logger` `v4.7.2`. Accept any args on block passed to the logger.
24
+
25
+ ## [v0.3.1](https://github.com/keypup-io/cloudenvoy/tree/v0.3.1) (2020-10-05)
26
+
27
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.3.0...v0.3.1)
28
+
29
+ **Improvements:**
30
+ - Development: auto-create topics in development mode when registering subscriptions.
31
+
3
32
  ## [v0.3.0](https://github.com/keypup-io/cloudenvoy/tree/v0.3.0) (2020-09-26)
4
33
 
5
34
  [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.2.0...v0.3.0)
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  ![Build Status](https://github.com/keypup-io/cloudenvoy/workflows/Test/badge.svg) [![Gem Version](https://badge.fury.io/rb/cloudenvoy.svg)](https://badge.fury.io/rb/cloudenvoy)
2
2
 
3
- **Note**: this gem is currently in alpha stage and has not been tested in production yet.
4
-
5
3
  # Cloudenvoy
6
4
 
7
5
  Cross-application messaging framework for GCP Pub/Sub.
@@ -12,6 +10,8 @@ Pub/Sub solves that event distribution problem by allowing developers to define
12
10
 
13
11
  Cloudenvoy works with the local pub/sub emulator as well, meaning that you can work offline without access to GCP.
14
12
 
13
+ **Maturity**: The gem is relatively young but is production-friendly. We at Keypup have already processed hundreds of thousands of pub/sub messages through Cloudenvoy. If you spot any bug, feel free to report it! we're aiming at a `v1.0.0` around Q1 2022.
14
+
15
15
  ## Summary
16
16
 
17
17
  1. [Installation](#installation)
@@ -80,7 +80,7 @@ Cloudenvoy.configure do |config|
80
80
  end
81
81
  ```
82
82
 
83
- Define a publisher:
83
+ Define a publisher or use generator: `rails generate cloudenvoy:publisher Dummy`
84
84
  ```ruby
85
85
  # app/publishers/dummy_publisher.rb
86
86
 
@@ -100,7 +100,7 @@ class DummyPublisher
100
100
  end
101
101
  ```
102
102
 
103
- Define a subscriber:
103
+ Define a subscriber or use generator: `rails generate cloudenvoy:subscriber Dummy`
104
104
  ```ruby
105
105
  # app/subscribers/dummy_subscriber.rb
106
106
 
@@ -2,7 +2,10 @@
2
2
 
3
3
  module Cloudenvoy
4
4
  # Handle execution of Cloudenvoy subscribers
5
- class SubscriberController < ApplicationController
5
+ class SubscriberController < ActionController::Base
6
+ # No need for CSRF verification on API endpoints
7
+ skip_before_action :verify_authenticity_token
8
+
6
9
  # Authenticate all requests.
7
10
  before_action :authenticate!
8
11
 
@@ -22,10 +25,8 @@ module Cloudenvoy
22
25
  rescue InvalidSubscriberError
23
26
  # 404: Message delivery will be retried
24
27
  head :not_found
25
- rescue StandardError => e
28
+ rescue StandardError
26
29
  # 422: Message delivery will be retried
27
- Cloudenvoy.logger.error(e)
28
- Cloudenvoy.logger.error(e.backtrace.join("\n"))
29
30
  head :unprocessable_entity
30
31
  end
31
32
 
@@ -42,7 +43,7 @@ module Cloudenvoy
42
43
  # Get raw body
43
44
  content = request.body.read
44
45
 
45
- # Return content parsed as JSON and add job retries count
46
+ # Return content parsed as JSON
46
47
  JSON.parse(content).except('token')
47
48
  end
48
49
  end
data/cloudenvoy.gemspec CHANGED
@@ -37,6 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency 'rspec', '~> 3.0'
38
38
  spec.add_development_dependency 'rubocop', '0.76.0'
39
39
  spec.add_development_dependency 'rubocop-rspec', '1.37.0'
40
+ spec.add_development_dependency 'semantic_logger'
40
41
  spec.add_development_dependency 'timecop'
41
42
  spec.add_development_dependency 'webmock'
42
43
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- cloudenvoy (0.2.0)
4
+ cloudenvoy (0.4.1)
5
5
  activesupport
6
6
  google-cloud-pubsub (~> 2.0)
7
7
  jwt
@@ -10,187 +10,206 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (6.0.3.2)
14
- actionpack (= 6.0.3.2)
13
+ actioncable (6.0.4.1)
14
+ actionpack (= 6.0.4.1)
15
15
  nio4r (~> 2.0)
16
16
  websocket-driver (>= 0.6.1)
17
- actionmailbox (6.0.3.2)
18
- actionpack (= 6.0.3.2)
19
- activejob (= 6.0.3.2)
20
- activerecord (= 6.0.3.2)
21
- activestorage (= 6.0.3.2)
22
- activesupport (= 6.0.3.2)
17
+ actionmailbox (6.0.4.1)
18
+ actionpack (= 6.0.4.1)
19
+ activejob (= 6.0.4.1)
20
+ activerecord (= 6.0.4.1)
21
+ activestorage (= 6.0.4.1)
22
+ activesupport (= 6.0.4.1)
23
23
  mail (>= 2.7.1)
24
- actionmailer (6.0.3.2)
25
- actionpack (= 6.0.3.2)
26
- actionview (= 6.0.3.2)
27
- activejob (= 6.0.3.2)
24
+ actionmailer (6.0.4.1)
25
+ actionpack (= 6.0.4.1)
26
+ actionview (= 6.0.4.1)
27
+ activejob (= 6.0.4.1)
28
28
  mail (~> 2.5, >= 2.5.4)
29
29
  rails-dom-testing (~> 2.0)
30
- actionpack (6.0.3.2)
31
- actionview (= 6.0.3.2)
32
- activesupport (= 6.0.3.2)
30
+ actionpack (6.0.4.1)
31
+ actionview (= 6.0.4.1)
32
+ activesupport (= 6.0.4.1)
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.3.2)
38
- actionpack (= 6.0.3.2)
39
- activerecord (= 6.0.3.2)
40
- activestorage (= 6.0.3.2)
41
- activesupport (= 6.0.3.2)
37
+ actiontext (6.0.4.1)
38
+ actionpack (= 6.0.4.1)
39
+ activerecord (= 6.0.4.1)
40
+ activestorage (= 6.0.4.1)
41
+ activesupport (= 6.0.4.1)
42
42
  nokogiri (>= 1.8.5)
43
- actionview (6.0.3.2)
44
- activesupport (= 6.0.3.2)
43
+ actionview (6.0.4.1)
44
+ activesupport (= 6.0.4.1)
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.3.2)
50
- activesupport (= 6.0.3.2)
49
+ activejob (6.0.4.1)
50
+ activesupport (= 6.0.4.1)
51
51
  globalid (>= 0.3.6)
52
- activemodel (6.0.3.2)
53
- activesupport (= 6.0.3.2)
54
- activerecord (6.0.3.2)
55
- activemodel (= 6.0.3.2)
56
- activesupport (= 6.0.3.2)
57
- activestorage (6.0.3.2)
58
- actionpack (= 6.0.3.2)
59
- activejob (= 6.0.3.2)
60
- activerecord (= 6.0.3.2)
61
- marcel (~> 0.3.1)
62
- activesupport (6.0.3.2)
52
+ activemodel (6.0.4.1)
53
+ activesupport (= 6.0.4.1)
54
+ activerecord (6.0.4.1)
55
+ activemodel (= 6.0.4.1)
56
+ activesupport (= 6.0.4.1)
57
+ activestorage (6.0.4.1)
58
+ actionpack (= 6.0.4.1)
59
+ activejob (= 6.0.4.1)
60
+ activerecord (= 6.0.4.1)
61
+ marcel (~> 1.0.0)
62
+ activesupport (6.0.4.1)
63
63
  concurrent-ruby (~> 1.0, >= 1.0.2)
64
64
  i18n (>= 0.7, < 2)
65
65
  minitest (~> 5.1)
66
66
  tzinfo (~> 1.1)
67
67
  zeitwerk (~> 2.2, >= 2.2.2)
68
- addressable (2.7.0)
68
+ addressable (2.8.0)
69
69
  public_suffix (>= 2.0.2, < 5.0)
70
70
  builder (3.2.4)
71
- concurrent-ruby (1.1.7)
71
+ concurrent-ruby (1.1.9)
72
72
  crass (1.0.6)
73
- erubi (1.9.0)
74
- faraday (1.0.1)
73
+ erubi (1.10.0)
74
+ faraday (1.8.0)
75
+ faraday-em_http (~> 1.0)
76
+ faraday-em_synchrony (~> 1.0)
77
+ faraday-excon (~> 1.1)
78
+ faraday-httpclient (~> 1.0.1)
79
+ faraday-net_http (~> 1.0)
80
+ faraday-net_http_persistent (~> 1.1)
81
+ faraday-patron (~> 1.0)
82
+ faraday-rack (~> 1.0)
75
83
  multipart-post (>= 1.2, < 3)
76
- gapic-common (0.3.4)
77
- google-protobuf (~> 3.12, >= 3.12.2)
78
- googleapis-common-protos (>= 1.3.9, < 2.0)
79
- googleapis-common-protos-types (>= 1.0.4, < 2.0)
80
- googleauth (~> 0.9)
81
- grpc (~> 1.25)
82
- globalid (0.4.2)
83
- activesupport (>= 4.2.0)
84
- google-cloud-core (1.5.0)
84
+ ruby2_keywords (>= 0.0.4)
85
+ faraday-em_http (1.0.0)
86
+ faraday-em_synchrony (1.0.0)
87
+ faraday-excon (1.1.0)
88
+ faraday-httpclient (1.0.1)
89
+ faraday-net_http (1.0.1)
90
+ faraday-net_http_persistent (1.2.0)
91
+ faraday-patron (1.0.0)
92
+ faraday-rack (1.0.0)
93
+ gapic-common (0.7.0)
94
+ faraday (~> 1.3)
95
+ google-protobuf (~> 3.14)
96
+ googleapis-common-protos (>= 1.3.11, < 2.a)
97
+ googleapis-common-protos-types (>= 1.0.6, < 2.a)
98
+ googleauth (>= 0.17.0, < 2.a)
99
+ grpc (~> 1.36)
100
+ globalid (0.5.2)
101
+ activesupport (>= 5.0)
102
+ google-cloud-core (1.6.0)
85
103
  google-cloud-env (~> 1.0)
86
104
  google-cloud-errors (~> 1.0)
87
- google-cloud-env (1.3.3)
105
+ google-cloud-env (1.5.0)
88
106
  faraday (>= 0.17.3, < 2.0)
89
- google-cloud-errors (1.0.1)
90
- google-cloud-pubsub (2.0.0)
107
+ google-cloud-errors (1.2.0)
108
+ google-cloud-pubsub (2.8.1)
91
109
  concurrent-ruby (~> 1.1)
92
110
  google-cloud-core (~> 1.5)
93
111
  google-cloud-pubsub-v1 (~> 0.0)
94
- google-cloud-pubsub-v1 (0.1.2)
95
- gapic-common (~> 0.3)
112
+ google-cloud-pubsub-v1 (0.6.0)
113
+ gapic-common (>= 0.7, < 2.a)
96
114
  google-cloud-errors (~> 1.0)
97
- grpc-google-iam-v1 (>= 0.6.10, < 2.0)
98
- google-protobuf (3.13.0-universal-darwin)
99
- googleapis-common-protos (1.3.10)
100
- google-protobuf (~> 3.11)
101
- googleapis-common-protos-types (>= 1.0.5, < 2.0)
115
+ grpc-google-iam-v1 (>= 0.6.10, < 2.a)
116
+ google-protobuf (3.18.0)
117
+ googleapis-common-protos (1.3.12)
118
+ google-protobuf (~> 3.14)
119
+ googleapis-common-protos-types (~> 1.2)
102
120
  grpc (~> 1.27)
103
- googleapis-common-protos-types (1.0.5)
104
- google-protobuf (~> 3.11)
105
- googleauth (0.13.1)
121
+ googleapis-common-protos-types (1.2.0)
122
+ google-protobuf (~> 3.14)
123
+ googleauth (1.0.0)
106
124
  faraday (>= 0.17.3, < 2.0)
107
125
  jwt (>= 1.4, < 3.0)
108
126
  memoist (~> 0.16)
109
127
  multi_json (~> 1.11)
110
128
  os (>= 0.9, < 2.0)
111
- signet (~> 0.14)
112
- grpc (1.32.0-universal-darwin)
113
- google-protobuf (~> 3.13)
129
+ signet (>= 0.16, < 2.a)
130
+ grpc (1.40.0)
131
+ google-protobuf (~> 3.15)
114
132
  googleapis-common-protos-types (~> 1.0)
115
- grpc-google-iam-v1 (0.6.10)
116
- google-protobuf (~> 3.11)
117
- googleapis-common-protos (>= 1.3.10, < 2.0)
133
+ grpc-google-iam-v1 (1.0.0)
134
+ google-protobuf (~> 3.14)
135
+ googleapis-common-protos (>= 1.3.12, < 2.0)
118
136
  grpc (~> 1.27)
119
- i18n (1.8.5)
137
+ i18n (1.8.10)
120
138
  concurrent-ruby (~> 1.0)
121
- jwt (2.2.2)
122
- loofah (2.6.0)
139
+ jwt (2.2.3)
140
+ loofah (2.12.0)
123
141
  crass (~> 1.0.2)
124
142
  nokogiri (>= 1.5.9)
125
143
  mail (2.7.1)
126
144
  mini_mime (>= 0.1.1)
127
- marcel (0.3.3)
128
- mimemagic (~> 0.3.2)
145
+ marcel (1.0.2)
129
146
  memoist (0.16.2)
130
147
  method_source (1.0.0)
131
- mimemagic (0.3.5)
132
- mini_mime (1.0.2)
133
- mini_portile2 (2.4.0)
134
- minitest (5.14.2)
148
+ mini_mime (1.1.1)
149
+ mini_portile2 (2.6.1)
150
+ minitest (5.14.4)
135
151
  multi_json (1.15.0)
136
152
  multipart-post (2.1.1)
137
- nio4r (2.5.2)
138
- nokogiri (1.10.9)
139
- mini_portile2 (~> 2.4.0)
153
+ nio4r (2.5.8)
154
+ nokogiri (1.12.5)
155
+ mini_portile2 (~> 2.6.1)
156
+ racc (~> 1.4)
140
157
  os (1.1.1)
141
158
  public_suffix (4.0.6)
159
+ racc (1.5.2)
142
160
  rack (2.2.3)
143
161
  rack-test (1.1.0)
144
162
  rack (>= 1.0, < 3)
145
- rails (6.0.3.2)
146
- actioncable (= 6.0.3.2)
147
- actionmailbox (= 6.0.3.2)
148
- actionmailer (= 6.0.3.2)
149
- actionpack (= 6.0.3.2)
150
- actiontext (= 6.0.3.2)
151
- actionview (= 6.0.3.2)
152
- activejob (= 6.0.3.2)
153
- activemodel (= 6.0.3.2)
154
- activerecord (= 6.0.3.2)
155
- activestorage (= 6.0.3.2)
156
- activesupport (= 6.0.3.2)
163
+ rails (6.0.4.1)
164
+ actioncable (= 6.0.4.1)
165
+ actionmailbox (= 6.0.4.1)
166
+ actionmailer (= 6.0.4.1)
167
+ actionpack (= 6.0.4.1)
168
+ actiontext (= 6.0.4.1)
169
+ actionview (= 6.0.4.1)
170
+ activejob (= 6.0.4.1)
171
+ activemodel (= 6.0.4.1)
172
+ activerecord (= 6.0.4.1)
173
+ activestorage (= 6.0.4.1)
174
+ activesupport (= 6.0.4.1)
157
175
  bundler (>= 1.3.0)
158
- railties (= 6.0.3.2)
176
+ railties (= 6.0.4.1)
159
177
  sprockets-rails (>= 2.0.0)
160
178
  rails-dom-testing (2.0.3)
161
179
  activesupport (>= 4.2.0)
162
180
  nokogiri (>= 1.6)
163
- rails-html-sanitizer (1.3.0)
181
+ rails-html-sanitizer (1.4.2)
164
182
  loofah (~> 2.3)
165
- railties (6.0.3.2)
166
- actionpack (= 6.0.3.2)
167
- activesupport (= 6.0.3.2)
183
+ railties (6.0.4.1)
184
+ actionpack (= 6.0.4.1)
185
+ activesupport (= 6.0.4.1)
168
186
  method_source
169
187
  rake (>= 0.8.7)
170
188
  thor (>= 0.20.3, < 2.0)
171
- rake (13.0.1)
189
+ rake (13.0.6)
172
190
  retriable (3.1.2)
173
- signet (0.14.0)
174
- addressable (~> 2.3)
191
+ ruby2_keywords (0.0.5)
192
+ signet (0.16.0)
193
+ addressable (~> 2.8)
175
194
  faraday (>= 0.17.3, < 2.0)
176
195
  jwt (>= 1.5, < 3.0)
177
196
  multi_json (~> 1.10)
178
197
  sprockets (4.0.2)
179
198
  concurrent-ruby (~> 1.0)
180
199
  rack (> 1, < 3)
181
- sprockets-rails (3.2.1)
200
+ sprockets-rails (3.2.2)
182
201
  actionpack (>= 4.0)
183
202
  activesupport (>= 4.0)
184
203
  sprockets (>= 3.0.0)
185
204
  sqlite3 (1.4.2)
186
- thor (1.0.1)
205
+ thor (1.1.0)
187
206
  thread_safe (0.3.6)
188
- tzinfo (1.2.7)
207
+ tzinfo (1.2.9)
189
208
  thread_safe (~> 0.1)
190
- websocket-driver (0.7.2)
209
+ websocket-driver (0.7.5)
191
210
  websocket-extensions (>= 0.1.0)
192
211
  websocket-extensions (0.1.5)
193
- zeitwerk (2.4.0)
212
+ zeitwerk (2.4.2)
194
213
 
195
214
  PLATFORMS
196
215
  ruby
@@ -204,4 +223,4 @@ RUBY VERSION
204
223
  ruby 2.5.5p157
205
224
 
206
225
  BUNDLED WITH
207
- 2.1.4
226
+ 2.2.26
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
+
6
+ ruby '2.5.5'
7
+
8
+ # Web framework
9
+ gem 'sinatra'
10
+
11
+ # Support rake tasks
12
+ gem 'rake'
13
+
14
+ # Pub/sub via cloudenvoy
15
+ gem 'cloudenvoy', path: '../../'
@@ -0,0 +1,127 @@
1
+ PATH
2
+ remote: ../..
3
+ specs:
4
+ cloudenvoy (0.4.1)
5
+ activesupport
6
+ google-cloud-pubsub (~> 2.0)
7
+ jwt
8
+ retriable
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ activesupport (6.1.4.1)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ zeitwerk (~> 2.3)
19
+ addressable (2.8.0)
20
+ public_suffix (>= 2.0.2, < 5.0)
21
+ concurrent-ruby (1.1.9)
22
+ faraday (1.8.0)
23
+ faraday-em_http (~> 1.0)
24
+ faraday-em_synchrony (~> 1.0)
25
+ faraday-excon (~> 1.1)
26
+ faraday-httpclient (~> 1.0.1)
27
+ faraday-net_http (~> 1.0)
28
+ faraday-net_http_persistent (~> 1.1)
29
+ faraday-patron (~> 1.0)
30
+ faraday-rack (~> 1.0)
31
+ multipart-post (>= 1.2, < 3)
32
+ ruby2_keywords (>= 0.0.4)
33
+ faraday-em_http (1.0.0)
34
+ faraday-em_synchrony (1.0.0)
35
+ faraday-excon (1.1.0)
36
+ faraday-httpclient (1.0.1)
37
+ faraday-net_http (1.0.1)
38
+ faraday-net_http_persistent (1.2.0)
39
+ faraday-patron (1.0.0)
40
+ faraday-rack (1.0.0)
41
+ gapic-common (0.7.0)
42
+ faraday (~> 1.3)
43
+ google-protobuf (~> 3.14)
44
+ googleapis-common-protos (>= 1.3.11, < 2.a)
45
+ googleapis-common-protos-types (>= 1.0.6, < 2.a)
46
+ googleauth (>= 0.17.0, < 2.a)
47
+ grpc (~> 1.36)
48
+ google-cloud-core (1.6.0)
49
+ google-cloud-env (~> 1.0)
50
+ google-cloud-errors (~> 1.0)
51
+ google-cloud-env (1.5.0)
52
+ faraday (>= 0.17.3, < 2.0)
53
+ google-cloud-errors (1.2.0)
54
+ google-cloud-pubsub (2.8.1)
55
+ concurrent-ruby (~> 1.1)
56
+ google-cloud-core (~> 1.5)
57
+ google-cloud-pubsub-v1 (~> 0.0)
58
+ google-cloud-pubsub-v1 (0.6.0)
59
+ gapic-common (>= 0.7, < 2.a)
60
+ google-cloud-errors (~> 1.0)
61
+ grpc-google-iam-v1 (>= 0.6.10, < 2.a)
62
+ google-protobuf (3.18.0-universal-darwin)
63
+ googleapis-common-protos (1.3.12)
64
+ google-protobuf (~> 3.14)
65
+ googleapis-common-protos-types (~> 1.2)
66
+ grpc (~> 1.27)
67
+ googleapis-common-protos-types (1.2.0)
68
+ google-protobuf (~> 3.14)
69
+ googleauth (1.0.0)
70
+ faraday (>= 0.17.3, < 2.0)
71
+ jwt (>= 1.4, < 3.0)
72
+ memoist (~> 0.16)
73
+ multi_json (~> 1.11)
74
+ os (>= 0.9, < 2.0)
75
+ signet (>= 0.16, < 2.a)
76
+ grpc (1.40.0-universal-darwin)
77
+ google-protobuf (~> 3.15)
78
+ googleapis-common-protos-types (~> 1.0)
79
+ grpc-google-iam-v1 (1.0.0)
80
+ google-protobuf (~> 3.14)
81
+ googleapis-common-protos (>= 1.3.12, < 2.0)
82
+ grpc (~> 1.27)
83
+ i18n (1.8.10)
84
+ concurrent-ruby (~> 1.0)
85
+ jwt (2.2.3)
86
+ memoist (0.16.2)
87
+ minitest (5.14.4)
88
+ multi_json (1.15.0)
89
+ multipart-post (2.1.1)
90
+ mustermann (1.1.1)
91
+ ruby2_keywords (~> 0.0.1)
92
+ os (1.1.1)
93
+ public_suffix (4.0.6)
94
+ rack (2.2.3)
95
+ rack-protection (2.1.0)
96
+ rack
97
+ rake (13.0.6)
98
+ retriable (3.1.2)
99
+ ruby2_keywords (0.0.5)
100
+ signet (0.16.0)
101
+ addressable (~> 2.8)
102
+ faraday (>= 0.17.3, < 2.0)
103
+ jwt (>= 1.5, < 3.0)
104
+ multi_json (~> 1.10)
105
+ sinatra (2.1.0)
106
+ mustermann (~> 1.0)
107
+ rack (~> 2.2)
108
+ rack-protection (= 2.1.0)
109
+ tilt (~> 2.0)
110
+ tilt (2.0.10)
111
+ tzinfo (2.0.4)
112
+ concurrent-ruby (~> 1.0)
113
+ zeitwerk (2.4.2)
114
+
115
+ PLATFORMS
116
+ x86_64-darwin-17
117
+
118
+ DEPENDENCIES
119
+ cloudenvoy!
120
+ rake
121
+ sinatra
122
+
123
+ RUBY VERSION
124
+ ruby 2.5.5p157
125
+
126
+ BUNDLED WITH
127
+ 2.2.26
@@ -0,0 +1 @@
1
+ web: bundle exec ruby app.rb -p 3000