cloudenvoy 0.1.0 → 0.4.1

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
2
  SHA256:
3
- metadata.gz: 788d59dcdb276ba209ea7502f1d03765ab0beac646089ac5891ea67967a96a25
4
- data.tar.gz: 819add5f2b7d7b3b37fc6f1f32d008af05fddd1409d585e0a88c7249f0427f57
3
+ metadata.gz: c0d42680109f30e014cb88dff9c7dc4fad3479f4cfd47131eb934c23ae0e08b2
4
+ data.tar.gz: af8a2e13e9f44dfc4af98e421084772a4961833a44faeb72b113aaa2e19ea825
5
5
  SHA512:
6
- metadata.gz: 3df6bb839c332feea426ec26ac09f46c951f8997159a53d32ce5ac3a11549648842f747ae1b2a0e962f399d8d12a11e6a64501d72134c0347485d39ec07d0ca8
7
- data.tar.gz: cd320825e2b8c842e2746c5b7acbfbb82751f743c9bae38a4e997f411a3aa44b6d1e658bf8c8a7afba108ecc7fcc3a5cca4bd2c4b9711a9bfeadd1d88e512c31
6
+ metadata.gz: 6449a39dc1bb6e066e9020d824f9c204930e3c32e07c42a9464a2d48ef2b6dc4c179a302236dbaae56f525c7fca3bda33c5ce1fcdb7f03a2234e807a706baab1
7
+ data.tar.gz: 1271d88b89fc101ad5dccf86236983ff8bfaea72cdcbee52ce6bd484eb79c8cbbc4c312d73e4a73133a1bc60fb88362f49e7a663ca251ba9c0f9b2849f343fe4
@@ -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/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
@@ -1,4 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.4.1](https://github.com/keypup-io/cloudenvoy/tree/v0.4.1) (2020-10-06)
4
+
5
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.4.0...v0.4.1)
6
+
7
+ **Bug fix:**
8
+ - Logging: log publisher and subscriber errors during execution
9
+ - Rake tasks: fix early return statement when publisher or subscriber list is empty
10
+
11
+ ## [v0.4.0](https://github.com/keypup-io/cloudenvoy/tree/v0.4.0) (2020-10-05)
12
+
13
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.3.1...v0.4.0)
14
+
15
+ **Bug fix:**
16
+ - Logging: fix log processing with `semantic_logger` `v4.7.2`. Accept any args on block passed to the logger.
17
+
18
+ ## [v0.3.1](https://github.com/keypup-io/cloudenvoy/tree/v0.3.1) (2020-10-05)
19
+
20
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.3.0...v0.3.1)
21
+
22
+ **Improvements:**
23
+ - Development: auto-create topics in development mode when registering subscriptions.
24
+
25
+ ## [v0.3.0](https://github.com/keypup-io/cloudenvoy/tree/v0.3.0) (2020-09-26)
26
+
27
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.2.0...v0.3.0)
28
+
29
+ **Bug fix:**
30
+ - Subscriptions: fix creation. `v0.2.0` introduced a bug as part of support subscription options (e.g. `retain_acked`)
31
+
32
+ ## [v0.2.0](https://github.com/keypup-io/cloudenvoy/tree/v0.2.0) (2020-09-22)
33
+
34
+ [Full Changelog](https://github.com/keypup-io/cloudenvoy/compare/v0.1.0...v0.2.0)
35
+
36
+ **Improvements:**
37
+ - Subscriptions: support creation options such as `retained_acked` and `deadline`
38
+
3
39
  ## [v0.1.0](https://github.com/keypup-io/cloudenvoy/tree/v0.1.0) (2020-09-16)
4
40
  Initial release
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudenvoy (0.1.0)
4
+ cloudenvoy (0.4.1)
5
5
  activesupport
6
6
  google-cloud-pubsub (~> 2.0)
7
7
  jwt
@@ -95,7 +95,7 @@ GEM
95
95
  google-cloud-env (1.3.3)
96
96
  faraday (>= 0.17.3, < 2.0)
97
97
  google-cloud-errors (1.0.1)
98
- google-cloud-pubsub (2.0.0)
98
+ google-cloud-pubsub (2.1.0)
99
99
  concurrent-ruby (~> 1.1)
100
100
  google-cloud-core (~> 1.5)
101
101
  google-cloud-pubsub-v1 (~> 0.0)
@@ -216,6 +216,8 @@ GEM
216
216
  rubocop (>= 0.68.1)
217
217
  ruby-progressbar (1.10.1)
218
218
  safe_yaml (1.0.5)
219
+ semantic_logger (4.7.2)
220
+ concurrent-ruby (~> 1.0)
219
221
  signet (0.14.0)
220
222
  addressable (~> 2.3)
221
223
  faraday (>= 0.17.3, < 2.0)
@@ -256,6 +258,7 @@ DEPENDENCIES
256
258
  rspec-rails
257
259
  rubocop (= 0.76.0)
258
260
  rubocop-rspec (= 1.37.0)
261
+ semantic_logger
259
262
  sqlite3
260
263
  timecop
261
264
  webmock
data/README.md CHANGED
@@ -357,7 +357,19 @@ class UserSubscriber
357
357
  include Cloudenvoy::Subscriber
358
358
 
359
359
  # Subscribers can subscribe to multiple topics
360
- cloudenvoy_options topics: ['system-users']
360
+ #
361
+ # You can subscribe to multiple topics:
362
+ # > cloudenvoy_options topics: ['system-users', 'events']
363
+ #
364
+ # You can specify subscription options for each topic
365
+ # by passing a hash (target: v0.2.0)
366
+ #
367
+ # > cloudenvoy_options topics: ['system-users', { name: 'events', retain_acked: true }]
368
+ #
369
+ # See the Pub/Sub documentation of the list of available subscription options:
370
+ # https://googleapis.dev/ruby/google-cloud-pubsub/latest/Google/Cloud/PubSub/Topic.html#subscribe-instance_method
371
+ #
372
+ cloudenvoy_options topic: 'system-users'
361
373
 
362
374
  # Create the user locally if it does not exist already
363
375
  #
@@ -22,10 +22,8 @@ module Cloudenvoy
22
22
  rescue InvalidSubscriberError
23
23
  # 404: Message delivery will be retried
24
24
  head :not_found
25
- rescue StandardError => e
25
+ rescue StandardError
26
26
  # 422: Message delivery will be retried
27
- Cloudenvoy.logger.error(e)
28
- Cloudenvoy.logger.error(e.backtrace.join("\n"))
29
27
  head :unprocessable_entity
30
28
  end
31
29
 
@@ -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.1.0.dev)
4
+ cloudenvoy (0.3.0)
5
5
  activesupport
6
6
  google-cloud-pubsub (~> 2.0)
7
7
  jwt
@@ -95,7 +95,7 @@ GEM
95
95
  gapic-common (~> 0.3)
96
96
  google-cloud-errors (~> 1.0)
97
97
  grpc-google-iam-v1 (>= 0.6.10, < 2.0)
98
- google-protobuf (3.13.0)
98
+ google-protobuf (3.13.0-universal-darwin)
99
99
  googleapis-common-protos (1.3.10)
100
100
  google-protobuf (~> 3.11)
101
101
  googleapis-common-protos-types (>= 1.0.5, < 2.0)
@@ -109,7 +109,7 @@ GEM
109
109
  multi_json (~> 1.11)
110
110
  os (>= 0.9, < 2.0)
111
111
  signet (~> 0.14)
112
- grpc (1.32.0)
112
+ grpc (1.32.0-universal-darwin)
113
113
  google-protobuf (~> 3.13)
114
114
  googleapis-common-protos-types (~> 1.0)
115
115
  grpc-google-iam-v1 (0.6.10)
@@ -3,7 +3,7 @@
3
3
  class HelloSubscriber
4
4
  include Cloudenvoy::Subscriber
5
5
 
6
- cloudenvoy_options topics: ['hello-msgs']
6
+ cloudenvoy_options topic: 'hello-msgs'
7
7
 
8
8
  #
9
9
  # Process a pub/sub message
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- cloudenvoy (0.1.0)
4
+ cloudenvoy (0.4.1)
5
5
  activesupport
6
6
  google-cloud-pubsub (~> 2.0)
7
7
  jwt
@@ -82,7 +82,7 @@ GEM
82
82
  google-cloud-env (1.3.3)
83
83
  faraday (>= 0.17.3, < 2.0)
84
84
  google-cloud-errors (1.0.1)
85
- google-cloud-pubsub (2.0.0)
85
+ google-cloud-pubsub (2.1.0)
86
86
  concurrent-ruby (~> 1.1)
87
87
  google-cloud-core (~> 1.5)
88
88
  google-cloud-pubsub-v1 (~> 0.0)
@@ -201,6 +201,8 @@ GEM
201
201
  rubocop (>= 0.68.1)
202
202
  ruby-progressbar (1.10.1)
203
203
  safe_yaml (1.0.5)
204
+ semantic_logger (4.7.2)
205
+ concurrent-ruby (~> 1.0)
204
206
  signet (0.14.0)
205
207
  addressable (~> 2.3)
206
208
  faraday (>= 0.17.3, < 2.0)
@@ -240,6 +242,7 @@ DEPENDENCIES
240
242
  rspec-rails
241
243
  rubocop (= 0.76.0)
242
244
  rubocop-rspec (= 1.37.0)
245
+ semantic_logger
243
246
  sqlite3
244
247
  timecop
245
248
  webmock
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- cloudenvoy (0.1.0)
4
+ cloudenvoy (0.4.1)
5
5
  activesupport
6
6
  google-cloud-pubsub (~> 2.0)
7
7
  jwt
@@ -95,7 +95,7 @@ GEM
95
95
  google-cloud-env (1.3.3)
96
96
  faraday (>= 0.17.3, < 2.0)
97
97
  google-cloud-errors (1.0.1)
98
- google-cloud-pubsub (2.0.0)
98
+ google-cloud-pubsub (2.1.0)
99
99
  concurrent-ruby (~> 1.1)
100
100
  google-cloud-core (~> 1.5)
101
101
  google-cloud-pubsub-v1 (~> 0.0)
@@ -216,6 +216,8 @@ GEM
216
216
  rubocop (>= 0.68.1)
217
217
  ruby-progressbar (1.10.1)
218
218
  safe_yaml (1.0.5)
219
+ semantic_logger (4.7.2)
220
+ concurrent-ruby (~> 1.0)
219
221
  signet (0.14.0)
220
222
  addressable (~> 2.3)
221
223
  faraday (>= 0.17.3, < 2.0)
@@ -256,6 +258,7 @@ DEPENDENCIES
256
258
  rspec-rails
257
259
  rubocop (= 0.76.0)
258
260
  rubocop-rspec (= 1.37.0)
261
+ semantic_logger
259
262
  sqlite3
260
263
  timecop
261
264
  webmock
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "semantic_logger", "3.4.1"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,265 @@
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
+ actioncable (6.0.3.3)
14
+ actionpack (= 6.0.3.3)
15
+ nio4r (~> 2.0)
16
+ websocket-driver (>= 0.6.1)
17
+ actionmailbox (6.0.3.3)
18
+ actionpack (= 6.0.3.3)
19
+ activejob (= 6.0.3.3)
20
+ activerecord (= 6.0.3.3)
21
+ activestorage (= 6.0.3.3)
22
+ activesupport (= 6.0.3.3)
23
+ mail (>= 2.7.1)
24
+ actionmailer (6.0.3.3)
25
+ actionpack (= 6.0.3.3)
26
+ actionview (= 6.0.3.3)
27
+ activejob (= 6.0.3.3)
28
+ mail (~> 2.5, >= 2.5.4)
29
+ rails-dom-testing (~> 2.0)
30
+ actionpack (6.0.3.3)
31
+ actionview (= 6.0.3.3)
32
+ activesupport (= 6.0.3.3)
33
+ rack (~> 2.0, >= 2.0.8)
34
+ rack-test (>= 0.6.3)
35
+ rails-dom-testing (~> 2.0)
36
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
37
+ actiontext (6.0.3.3)
38
+ actionpack (= 6.0.3.3)
39
+ activerecord (= 6.0.3.3)
40
+ activestorage (= 6.0.3.3)
41
+ activesupport (= 6.0.3.3)
42
+ nokogiri (>= 1.8.5)
43
+ actionview (6.0.3.3)
44
+ activesupport (= 6.0.3.3)
45
+ builder (~> 3.1)
46
+ erubi (~> 1.4)
47
+ rails-dom-testing (~> 2.0)
48
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
+ activejob (6.0.3.3)
50
+ activesupport (= 6.0.3.3)
51
+ globalid (>= 0.3.6)
52
+ activemodel (6.0.3.3)
53
+ activesupport (= 6.0.3.3)
54
+ activerecord (6.0.3.3)
55
+ activemodel (= 6.0.3.3)
56
+ activesupport (= 6.0.3.3)
57
+ activestorage (6.0.3.3)
58
+ actionpack (= 6.0.3.3)
59
+ activejob (= 6.0.3.3)
60
+ activerecord (= 6.0.3.3)
61
+ marcel (~> 0.3.1)
62
+ activesupport (6.0.3.3)
63
+ concurrent-ruby (~> 1.0, >= 1.0.2)
64
+ i18n (>= 0.7, < 2)
65
+ minitest (~> 5.1)
66
+ tzinfo (~> 1.1)
67
+ zeitwerk (~> 2.2, >= 2.2.2)
68
+ addressable (2.7.0)
69
+ public_suffix (>= 2.0.2, < 5.0)
70
+ appraisal (2.3.0)
71
+ bundler
72
+ rake
73
+ thor (>= 0.14.0)
74
+ ast (2.4.1)
75
+ builder (3.2.4)
76
+ concurrent-ruby (1.1.7)
77
+ crack (0.4.4)
78
+ crass (1.0.6)
79
+ diff-lcs (1.4.4)
80
+ erubi (1.9.0)
81
+ faraday (1.0.1)
82
+ multipart-post (>= 1.2, < 3)
83
+ gapic-common (0.3.4)
84
+ google-protobuf (~> 3.12, >= 3.12.2)
85
+ googleapis-common-protos (>= 1.3.9, < 2.0)
86
+ googleapis-common-protos-types (>= 1.0.4, < 2.0)
87
+ googleauth (~> 0.9)
88
+ grpc (~> 1.25)
89
+ globalid (0.4.2)
90
+ activesupport (>= 4.2.0)
91
+ google-cloud-core (1.5.0)
92
+ google-cloud-env (~> 1.0)
93
+ google-cloud-errors (~> 1.0)
94
+ google-cloud-env (1.3.3)
95
+ faraday (>= 0.17.3, < 2.0)
96
+ google-cloud-errors (1.0.1)
97
+ google-cloud-pubsub (2.1.0)
98
+ concurrent-ruby (~> 1.1)
99
+ google-cloud-core (~> 1.5)
100
+ google-cloud-pubsub-v1 (~> 0.0)
101
+ google-cloud-pubsub-v1 (0.1.2)
102
+ gapic-common (~> 0.3)
103
+ google-cloud-errors (~> 1.0)
104
+ grpc-google-iam-v1 (>= 0.6.10, < 2.0)
105
+ google-protobuf (3.13.0-universal-darwin)
106
+ googleapis-common-protos (1.3.10)
107
+ google-protobuf (~> 3.11)
108
+ googleapis-common-protos-types (>= 1.0.5, < 2.0)
109
+ grpc (~> 1.27)
110
+ googleapis-common-protos-types (1.0.5)
111
+ google-protobuf (~> 3.11)
112
+ googleauth (0.13.1)
113
+ faraday (>= 0.17.3, < 2.0)
114
+ jwt (>= 1.4, < 3.0)
115
+ memoist (~> 0.16)
116
+ multi_json (~> 1.11)
117
+ os (>= 0.9, < 2.0)
118
+ signet (~> 0.14)
119
+ grpc (1.32.0-universal-darwin)
120
+ google-protobuf (~> 3.13)
121
+ googleapis-common-protos-types (~> 1.0)
122
+ grpc-google-iam-v1 (0.6.10)
123
+ google-protobuf (~> 3.11)
124
+ googleapis-common-protos (>= 1.3.10, < 2.0)
125
+ grpc (~> 1.27)
126
+ hashdiff (1.0.1)
127
+ i18n (1.8.5)
128
+ concurrent-ruby (~> 1.0)
129
+ jaro_winkler (1.5.4)
130
+ jwt (2.2.2)
131
+ loofah (2.7.0)
132
+ crass (~> 1.0.2)
133
+ nokogiri (>= 1.5.9)
134
+ mail (2.7.1)
135
+ mini_mime (>= 0.1.1)
136
+ marcel (0.3.3)
137
+ mimemagic (~> 0.3.2)
138
+ memoist (0.16.2)
139
+ method_source (1.0.0)
140
+ mimemagic (0.3.5)
141
+ mini_mime (1.0.2)
142
+ mini_portile2 (2.4.0)
143
+ minitest (5.14.2)
144
+ multi_json (1.15.0)
145
+ multipart-post (2.1.1)
146
+ nio4r (2.5.4)
147
+ nokogiri (1.10.10)
148
+ mini_portile2 (~> 2.4.0)
149
+ os (1.1.1)
150
+ parallel (1.19.2)
151
+ parser (2.7.1.5)
152
+ ast (~> 2.4.1)
153
+ public_suffix (4.0.6)
154
+ rack (2.2.3)
155
+ rack-test (1.1.0)
156
+ rack (>= 1.0, < 3)
157
+ rails (6.0.3.3)
158
+ actioncable (= 6.0.3.3)
159
+ actionmailbox (= 6.0.3.3)
160
+ actionmailer (= 6.0.3.3)
161
+ actionpack (= 6.0.3.3)
162
+ actiontext (= 6.0.3.3)
163
+ actionview (= 6.0.3.3)
164
+ activejob (= 6.0.3.3)
165
+ activemodel (= 6.0.3.3)
166
+ activerecord (= 6.0.3.3)
167
+ activestorage (= 6.0.3.3)
168
+ activesupport (= 6.0.3.3)
169
+ bundler (>= 1.3.0)
170
+ railties (= 6.0.3.3)
171
+ sprockets-rails (>= 2.0.0)
172
+ rails-dom-testing (2.0.3)
173
+ activesupport (>= 4.2.0)
174
+ nokogiri (>= 1.6)
175
+ rails-html-sanitizer (1.3.0)
176
+ loofah (~> 2.3)
177
+ railties (6.0.3.3)
178
+ actionpack (= 6.0.3.3)
179
+ activesupport (= 6.0.3.3)
180
+ method_source
181
+ rake (>= 0.8.7)
182
+ thor (>= 0.20.3, < 2.0)
183
+ rainbow (3.0.0)
184
+ rake (13.0.1)
185
+ retriable (3.1.2)
186
+ rspec (3.9.0)
187
+ rspec-core (~> 3.9.0)
188
+ rspec-expectations (~> 3.9.0)
189
+ rspec-mocks (~> 3.9.0)
190
+ rspec-core (3.9.3)
191
+ rspec-support (~> 3.9.3)
192
+ rspec-expectations (3.9.2)
193
+ diff-lcs (>= 1.2.0, < 2.0)
194
+ rspec-support (~> 3.9.0)
195
+ rspec-mocks (3.9.1)
196
+ diff-lcs (>= 1.2.0, < 2.0)
197
+ rspec-support (~> 3.9.0)
198
+ rspec-rails (4.0.1)
199
+ actionpack (>= 4.2)
200
+ activesupport (>= 4.2)
201
+ railties (>= 4.2)
202
+ rspec-core (~> 3.9)
203
+ rspec-expectations (~> 3.9)
204
+ rspec-mocks (~> 3.9)
205
+ rspec-support (~> 3.9)
206
+ rspec-support (3.9.3)
207
+ rubocop (0.76.0)
208
+ jaro_winkler (~> 1.5.1)
209
+ parallel (~> 1.10)
210
+ parser (>= 2.6)
211
+ rainbow (>= 2.2.2, < 4.0)
212
+ ruby-progressbar (~> 1.7)
213
+ unicode-display_width (>= 1.4.0, < 1.7)
214
+ rubocop-rspec (1.37.0)
215
+ rubocop (>= 0.68.1)
216
+ ruby-progressbar (1.10.1)
217
+ semantic_logger (3.4.1)
218
+ concurrent-ruby (~> 1.0)
219
+ signet (0.14.0)
220
+ addressable (~> 2.3)
221
+ faraday (>= 0.17.3, < 2.0)
222
+ jwt (>= 1.5, < 3.0)
223
+ multi_json (~> 1.10)
224
+ sprockets (4.0.2)
225
+ concurrent-ruby (~> 1.0)
226
+ rack (> 1, < 3)
227
+ sprockets-rails (3.2.2)
228
+ actionpack (>= 4.0)
229
+ activesupport (>= 4.0)
230
+ sprockets (>= 3.0.0)
231
+ sqlite3 (1.4.2)
232
+ thor (1.0.1)
233
+ thread_safe (0.3.6)
234
+ timecop (0.9.1)
235
+ tzinfo (1.2.7)
236
+ thread_safe (~> 0.1)
237
+ unicode-display_width (1.6.1)
238
+ webmock (3.9.1)
239
+ addressable (>= 2.3.6)
240
+ crack (>= 0.3.2)
241
+ hashdiff (>= 0.4.0, < 2.0.0)
242
+ websocket-driver (0.7.3)
243
+ websocket-extensions (>= 0.1.0)
244
+ websocket-extensions (0.1.5)
245
+ zeitwerk (2.4.0)
246
+
247
+ PLATFORMS
248
+ ruby
249
+
250
+ DEPENDENCIES
251
+ appraisal
252
+ cloudenvoy!
253
+ rails
254
+ rake (>= 12.3.3)
255
+ rspec (~> 3.0)
256
+ rspec-rails
257
+ rubocop (= 0.76.0)
258
+ rubocop-rspec (= 1.37.0)
259
+ semantic_logger (= 3.4.1)
260
+ sqlite3
261
+ timecop
262
+ webmock
263
+
264
+ BUNDLED WITH
265
+ 2.1.4