cloudenvoy 0.3.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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