cloudenvoy 0.1.0 → 0.4.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 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