dep_shield 0.1.2 → 0.3.0

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: d34f09cc5662781f4ac4e0c8cc133c5450ebddfb11dea43e3c1960a6ef004a5b
4
- data.tar.gz: fc0ea1a708e700bab073a51b7efbe34eae7390800e1a83031028cd451d307c07
3
+ metadata.gz: baba0326467a70924aa2670a65d8a294d8695e23ab965a15d14c07cde911bd9d
4
+ data.tar.gz: bc304f84b170cb9b0c2fe0935b3703aea81b74270d28f3b615a5c7650755c869
5
5
  SHA512:
6
- metadata.gz: 89081dbd1e13a1cf0594a12816661da7c741bc68e3e025494bb6a9357225147211fa2917c6d34cb0ebb76330bd6734496ed5b20a1b3a02025358f8e30babc2e6
7
- data.tar.gz: 7db0507ed633afa7e009ffeec4ab8b2db6f26987c6b2aae5043f2539cfba6ce9561a8207a0f05a0950cc7f4d47584d7a973dd3c45e7aefe062f3689319fd05e7
6
+ metadata.gz: 5c31219266c14b05b3dc28742f92b795620677bf0d5ee284359e66a7e523465060f23febd434e55b26813984f8ec51acc3df7c9140697e717e914c0ed8c8254e
7
+ data.tar.gz: ebc6f537ddad6fa03949f682aeb25c2f6af2557b4dac974d956d9f658c055eb8ba77ffece21ef13a3a11a4a5a5022111f3cc6314176d7622cbcbec583063dfb0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.3.0]
4
+
5
+ - Subscribe to deprecation.rails notifications from railtie
6
+
7
+ ## [0.2.0]
8
+
9
+ - Dynamically load todo lists
10
+
11
+ ## [0.1.1]
12
+
13
+ - Fixes / navigates around different returns for YAML.load_file
14
+
3
15
  ## [0.1.0] - 2024-01-17
4
16
 
5
17
  - Initial release
data/docs/README.md CHANGED
@@ -4,6 +4,12 @@ Introducing DepShield, your go-to Ruby gem for proactive deprecation management
4
4
 
5
5
  With DepShield, developers can stay ahead of the curve by receiving real-time alerts about deprecated code, ensuring a smoother transition to future updates. Tailor your development and demo environments to raise alarms, preventing the introduction of new deprecations. In addition, DepShield offers the flexibility to configure self-reporting mechanisms, allowing seamless issue notifications, configurable by environment Say goodbye to unexpected deprecation surprises and embrace a more streamlined and informed coding experience with DepShield!
6
6
 
7
+ ## Setup
8
+
9
+ After installing DepShield, load any todo lists in your application with:
10
+
11
+ `DepShield.todos.load("path-to-deprecation_todos.yml")`
12
+
7
13
  ## Usage
8
14
 
9
15
  `DepShield#raise_or_capture!` is used to mark methods as deprecated. When called, it will intelligently warn or raise exceptions to alert developers to the deprecated activity. The method expects two arguments, a `name` (ie, the name of the deprecation you're introducing), and a `message` (usually information about what is deprecated and how to fix it). Marking something as deprecated is pretty simple:
@@ -22,10 +28,21 @@ This is used in conjuction with NitroConfig to define how different environment
22
28
  Option A: the result of this is a logged warning every time the method is called.
23
29
  Option B: this will raise and notify our error catcher (Sentry).
24
30
 
25
- If a developer needs to bypass this/defer fixing the deprecation to a future date, the call can be "grandfathered" by adding this information to the allowlist in `.deprecation_todo.yml` in the application/component that hosts the deprecated reference. For example, if you have a method in the `authors` component that references `Books.category`:
31
+ If a developer needs to bypass this/defer fixing the deprecation to a future date, the call can be "grandfathered" by adding this information to the allowlist in a `.deprecation_todo.yml` file in the application/component that hosts the deprecated reference. For example, if you have a method in the `authors` component that references `Books.category`:
26
32
 
27
33
  ```ruby
28
34
  # components/authors/lib/book_information.rb
29
35
 
30
36
  book_category = Books.category
31
37
  ```
38
+
39
+ You could disable this with:
40
+
41
+ ```yml
42
+ # components/authors/.deprecation_todo.yml
43
+
44
+ books_default_category:
45
+ - components/authors/lib/book_information.rb
46
+ ```
47
+
48
+ More details and another example can be found [here](https://github.com/powerhome/power-tools/blob/main/packages/dep_shield/spec/internal/config/.deprecation_todo.yml)
@@ -4,9 +4,10 @@
4
4
 
5
5
  source "https://rubygems.org"
6
6
 
7
+ gem "nokogiri", "< 1.16"
7
8
  gem "rails", "6.0.6.1"
8
9
  gem "rake", "~> 13.0"
9
10
  gem "rspec", "~> 3.0"
10
- gem "rubocop", "~> 1.21"
11
+ gem "rubocop-powerhome", path: "../../rubocop-powerhome"
11
12
 
12
13
  gemspec path: "../"
@@ -1,7 +1,20 @@
1
+ PATH
2
+ remote: ../../rubocop-powerhome
3
+ specs:
4
+ rubocop-powerhome (0.5.2)
5
+ rubocop (~> 1.52.0)
6
+ rubocop-performance
7
+ rubocop-rails
8
+ rubocop-rake
9
+ rubocop-rspec
10
+
1
11
  PATH
2
12
  remote: ..
3
13
  specs:
4
- dep_shield (0.1.0)
14
+ dep_shield (0.3.0)
15
+ nitro_config
16
+ railties (>= 6.0.6.1, <= 7.0.6)
17
+ sentry-rails (= 5.5.0)
5
18
  sentry-ruby (= 5.5.0)
6
19
 
7
20
  GEM
@@ -68,6 +81,10 @@ GEM
68
81
  thor (>= 0.14.0)
69
82
  ast (2.4.2)
70
83
  builder (3.2.4)
84
+ combustion (1.4.0)
85
+ activesupport (>= 3.0.0)
86
+ railties (>= 3.0.0)
87
+ thor (>= 0.14.6)
71
88
  concurrent-ruby (1.2.3)
72
89
  crass (1.0.6)
73
90
  date (3.3.4)
@@ -78,7 +95,6 @@ GEM
78
95
  i18n (1.14.1)
79
96
  concurrent-ruby (~> 1.0)
80
97
  json (2.7.1)
81
- language_server-protocol (3.17.0.3)
82
98
  license_finder (7.1.0)
83
99
  bundler
84
100
  rubyzip (>= 1, < 3)
@@ -108,10 +124,14 @@ GEM
108
124
  net-smtp (0.4.0.1)
109
125
  net-protocol
110
126
  nio4r (2.7.0)
111
- nokogiri (1.16.0-arm64-darwin)
127
+ nitro_config (0.2.0)
128
+ activesupport (>= 5.2.8.1)
129
+ nokogiri (1.15.5-arm64-darwin)
130
+ racc (~> 1.4)
131
+ nokogiri (1.15.5-x86_64-linux)
112
132
  racc (~> 1.4)
113
133
  parallel (1.24.0)
114
- parser (3.3.0.4)
134
+ parser (3.3.0.5)
115
135
  ast (~> 2.4.1)
116
136
  racc
117
137
  racc (1.7.3)
@@ -162,16 +182,23 @@ GEM
162
182
  rspec-mocks (3.12.6)
163
183
  diff-lcs (>= 1.2.0, < 2.0)
164
184
  rspec-support (~> 3.12.0)
185
+ rspec-rails (5.1.2)
186
+ actionpack (>= 5.2)
187
+ activesupport (>= 5.2)
188
+ railties (>= 5.2)
189
+ rspec-core (~> 3.10)
190
+ rspec-expectations (~> 3.10)
191
+ rspec-mocks (~> 3.10)
192
+ rspec-support (~> 3.10)
165
193
  rspec-support (3.12.1)
166
- rubocop (1.60.1)
194
+ rubocop (1.52.1)
167
195
  json (~> 2.3)
168
- language_server-protocol (>= 3.17.0)
169
196
  parallel (~> 1.10)
170
- parser (>= 3.3.0.2)
197
+ parser (>= 3.2.2.3)
171
198
  rainbow (>= 2.2.2, < 4.0)
172
199
  regexp_parser (>= 1.8, < 3.0)
173
200
  rexml (>= 3.2.5, < 4.0)
174
- rubocop-ast (>= 1.30.0, < 2.0)
201
+ rubocop-ast (>= 1.28.0, < 2.0)
175
202
  ruby-progressbar (~> 1.7)
176
203
  unicode-display_width (>= 2.4.0, < 3.0)
177
204
  rubocop-ast (1.30.0)
@@ -183,12 +210,6 @@ GEM
183
210
  rubocop-performance (1.20.2)
184
211
  rubocop (>= 1.48.1, < 2.0)
185
212
  rubocop-ast (>= 1.30.0, < 2.0)
186
- rubocop-powerhome (0.5.0)
187
- rubocop
188
- rubocop-performance
189
- rubocop-rails
190
- rubocop-rake
191
- rubocop-rspec
192
213
  rubocop-rails (2.23.1)
193
214
  activesupport (>= 4.2.0)
194
215
  rack (>= 1.1)
@@ -202,6 +223,9 @@ GEM
202
223
  rubocop-factory_bot (~> 2.22)
203
224
  ruby-progressbar (1.13.0)
204
225
  rubyzip (2.3.2)
226
+ sentry-rails (5.5.0)
227
+ railties (>= 5.0)
228
+ sentry-ruby (~> 5.5.0)
205
229
  sentry-ruby (5.5.0)
206
230
  concurrent-ruby (~> 1.0, >= 1.0.2)
207
231
  sprockets (4.2.1)
@@ -211,6 +235,7 @@ GEM
211
235
  actionpack (>= 5.2)
212
236
  activesupport (>= 5.2)
213
237
  sprockets (>= 3.0.0)
238
+ sqlite3 (1.4.4)
214
239
  thor (1.3.0)
215
240
  thread_safe (0.3.6)
216
241
  timeout (0.4.1)
@@ -228,16 +253,20 @@ GEM
228
253
 
229
254
  PLATFORMS
230
255
  arm64-darwin
256
+ x86_64-linux
231
257
 
232
258
  DEPENDENCIES
233
259
  appraisal (~> 2.5.0)
260
+ combustion (~> 1.4)
234
261
  dep_shield!
235
262
  license_finder (>= 7.0)
263
+ nokogiri (< 1.16)
236
264
  rails (= 6.0.6.1)
237
265
  rake (~> 13.0)
238
266
  rspec (~> 3.0)
239
- rubocop (~> 1.21)
240
- rubocop-powerhome (= 0.5.0)
267
+ rspec-rails (~> 5.1.2)
268
+ rubocop-powerhome!
269
+ sqlite3 (~> 1.4.2)
241
270
 
242
271
  BUNDLED WITH
243
272
  2.5.4
@@ -4,9 +4,10 @@
4
4
 
5
5
  source "https://rubygems.org"
6
6
 
7
+ gem "nokogiri", "< 1.16"
7
8
  gem "rails", "6.1.7.4"
8
9
  gem "rake", "~> 13.0"
9
10
  gem "rspec", "~> 3.0"
10
- gem "rubocop", "~> 1.21"
11
+ gem "rubocop-powerhome", path: "../../rubocop-powerhome"
11
12
 
12
13
  gemspec path: "../"
@@ -1,7 +1,20 @@
1
+ PATH
2
+ remote: ../../rubocop-powerhome
3
+ specs:
4
+ rubocop-powerhome (0.5.2)
5
+ rubocop (~> 1.52.0)
6
+ rubocop-performance
7
+ rubocop-rails
8
+ rubocop-rake
9
+ rubocop-rspec
10
+
1
11
  PATH
2
12
  remote: ..
3
13
  specs:
4
- dep_shield (0.1.0)
14
+ dep_shield (0.3.0)
15
+ nitro_config
16
+ railties (>= 6.0.6.1, <= 7.0.6)
17
+ sentry-rails (= 5.5.0)
5
18
  sentry-ruby (= 5.5.0)
6
19
 
7
20
  GEM
@@ -72,6 +85,10 @@ GEM
72
85
  thor (>= 0.14.0)
73
86
  ast (2.4.2)
74
87
  builder (3.2.4)
88
+ combustion (1.4.0)
89
+ activesupport (>= 3.0.0)
90
+ railties (>= 3.0.0)
91
+ thor (>= 0.14.6)
75
92
  concurrent-ruby (1.2.3)
76
93
  crass (1.0.6)
77
94
  date (3.3.4)
@@ -82,7 +99,6 @@ GEM
82
99
  i18n (1.14.1)
83
100
  concurrent-ruby (~> 1.0)
84
101
  json (2.7.1)
85
- language_server-protocol (3.17.0.3)
86
102
  license_finder (7.1.0)
87
103
  bundler
88
104
  rubyzip (>= 1, < 3)
@@ -112,10 +128,14 @@ GEM
112
128
  net-smtp (0.4.0.1)
113
129
  net-protocol
114
130
  nio4r (2.7.0)
115
- nokogiri (1.16.0-arm64-darwin)
131
+ nitro_config (0.2.0)
132
+ activesupport (>= 5.2.8.1)
133
+ nokogiri (1.15.5-arm64-darwin)
134
+ racc (~> 1.4)
135
+ nokogiri (1.15.5-x86_64-linux)
116
136
  racc (~> 1.4)
117
137
  parallel (1.24.0)
118
- parser (3.3.0.4)
138
+ parser (3.3.0.5)
119
139
  ast (~> 2.4.1)
120
140
  racc
121
141
  racc (1.7.3)
@@ -166,16 +186,23 @@ GEM
166
186
  rspec-mocks (3.12.6)
167
187
  diff-lcs (>= 1.2.0, < 2.0)
168
188
  rspec-support (~> 3.12.0)
189
+ rspec-rails (5.1.2)
190
+ actionpack (>= 5.2)
191
+ activesupport (>= 5.2)
192
+ railties (>= 5.2)
193
+ rspec-core (~> 3.10)
194
+ rspec-expectations (~> 3.10)
195
+ rspec-mocks (~> 3.10)
196
+ rspec-support (~> 3.10)
169
197
  rspec-support (3.12.1)
170
- rubocop (1.60.1)
198
+ rubocop (1.52.1)
171
199
  json (~> 2.3)
172
- language_server-protocol (>= 3.17.0)
173
200
  parallel (~> 1.10)
174
- parser (>= 3.3.0.2)
201
+ parser (>= 3.2.2.3)
175
202
  rainbow (>= 2.2.2, < 4.0)
176
203
  regexp_parser (>= 1.8, < 3.0)
177
204
  rexml (>= 3.2.5, < 4.0)
178
- rubocop-ast (>= 1.30.0, < 2.0)
205
+ rubocop-ast (>= 1.28.0, < 2.0)
179
206
  ruby-progressbar (~> 1.7)
180
207
  unicode-display_width (>= 2.4.0, < 3.0)
181
208
  rubocop-ast (1.30.0)
@@ -187,12 +214,6 @@ GEM
187
214
  rubocop-performance (1.20.2)
188
215
  rubocop (>= 1.48.1, < 2.0)
189
216
  rubocop-ast (>= 1.30.0, < 2.0)
190
- rubocop-powerhome (0.5.0)
191
- rubocop
192
- rubocop-performance
193
- rubocop-rails
194
- rubocop-rake
195
- rubocop-rspec
196
217
  rubocop-rails (2.23.1)
197
218
  activesupport (>= 4.2.0)
198
219
  rack (>= 1.1)
@@ -206,6 +227,9 @@ GEM
206
227
  rubocop-factory_bot (~> 2.22)
207
228
  ruby-progressbar (1.13.0)
208
229
  rubyzip (2.3.2)
230
+ sentry-rails (5.5.0)
231
+ railties (>= 5.0)
232
+ sentry-ruby (~> 5.5.0)
209
233
  sentry-ruby (5.5.0)
210
234
  concurrent-ruby (~> 1.0, >= 1.0.2)
211
235
  sprockets (4.2.1)
@@ -215,6 +239,7 @@ GEM
215
239
  actionpack (>= 5.2)
216
240
  activesupport (>= 5.2)
217
241
  sprockets (>= 3.0.0)
242
+ sqlite3 (1.4.4)
218
243
  thor (1.3.0)
219
244
  timeout (0.4.1)
220
245
  tomlrb (2.0.3)
@@ -231,16 +256,20 @@ GEM
231
256
 
232
257
  PLATFORMS
233
258
  arm64-darwin
259
+ x86_64-linux
234
260
 
235
261
  DEPENDENCIES
236
262
  appraisal (~> 2.5.0)
263
+ combustion (~> 1.4)
237
264
  dep_shield!
238
265
  license_finder (>= 7.0)
266
+ nokogiri (< 1.16)
239
267
  rails (= 6.1.7.4)
240
268
  rake (~> 13.0)
241
269
  rspec (~> 3.0)
242
- rubocop (~> 1.21)
243
- rubocop-powerhome (= 0.5.0)
270
+ rspec-rails (~> 5.1.2)
271
+ rubocop-powerhome!
272
+ sqlite3 (~> 1.4.2)
244
273
 
245
274
  BUNDLED WITH
246
275
  2.5.4
@@ -4,9 +4,10 @@
4
4
 
5
5
  source "https://rubygems.org"
6
6
 
7
+ gem "nokogiri", "< 1.16"
7
8
  gem "rails", "7.0.6"
8
9
  gem "rake", "~> 13.0"
9
10
  gem "rspec", "~> 3.0"
10
- gem "rubocop", "~> 1.21"
11
+ gem "rubocop-powerhome", path: "../../rubocop-powerhome"
11
12
 
12
13
  gemspec path: "../"
@@ -1,7 +1,20 @@
1
+ PATH
2
+ remote: ../../rubocop-powerhome
3
+ specs:
4
+ rubocop-powerhome (0.5.2)
5
+ rubocop (~> 1.52.0)
6
+ rubocop-performance
7
+ rubocop-rails
8
+ rubocop-rake
9
+ rubocop-rspec
10
+
1
11
  PATH
2
12
  remote: ..
3
13
  specs:
4
- dep_shield (0.1.0)
14
+ dep_shield (0.3.0)
15
+ nitro_config
16
+ railties (>= 6.0.6.1, <= 7.0.6)
17
+ sentry-rails (= 5.5.0)
5
18
  sentry-ruby (= 5.5.0)
6
19
 
7
20
  GEM
@@ -78,6 +91,10 @@ GEM
78
91
  thor (>= 0.14.0)
79
92
  ast (2.4.2)
80
93
  builder (3.2.4)
94
+ combustion (1.4.0)
95
+ activesupport (>= 3.0.0)
96
+ railties (>= 3.0.0)
97
+ thor (>= 0.14.6)
81
98
  concurrent-ruby (1.2.3)
82
99
  crass (1.0.6)
83
100
  date (3.3.4)
@@ -88,7 +105,6 @@ GEM
88
105
  i18n (1.14.1)
89
106
  concurrent-ruby (~> 1.0)
90
107
  json (2.7.1)
91
- language_server-protocol (3.17.0.3)
92
108
  license_finder (7.1.0)
93
109
  bundler
94
110
  rubyzip (>= 1, < 3)
@@ -118,10 +134,14 @@ GEM
118
134
  net-smtp (0.4.0.1)
119
135
  net-protocol
120
136
  nio4r (2.7.0)
121
- nokogiri (1.16.0-arm64-darwin)
137
+ nitro_config (0.2.0)
138
+ activesupport (>= 5.2.8.1)
139
+ nokogiri (1.15.5-arm64-darwin)
140
+ racc (~> 1.4)
141
+ nokogiri (1.15.5-x86_64-linux)
122
142
  racc (~> 1.4)
123
143
  parallel (1.24.0)
124
- parser (3.3.0.4)
144
+ parser (3.3.0.5)
125
145
  ast (~> 2.4.1)
126
146
  racc
127
147
  racc (1.7.3)
@@ -172,16 +192,23 @@ GEM
172
192
  rspec-mocks (3.12.6)
173
193
  diff-lcs (>= 1.2.0, < 2.0)
174
194
  rspec-support (~> 3.12.0)
195
+ rspec-rails (5.1.2)
196
+ actionpack (>= 5.2)
197
+ activesupport (>= 5.2)
198
+ railties (>= 5.2)
199
+ rspec-core (~> 3.10)
200
+ rspec-expectations (~> 3.10)
201
+ rspec-mocks (~> 3.10)
202
+ rspec-support (~> 3.10)
175
203
  rspec-support (3.12.1)
176
- rubocop (1.60.1)
204
+ rubocop (1.52.1)
177
205
  json (~> 2.3)
178
- language_server-protocol (>= 3.17.0)
179
206
  parallel (~> 1.10)
180
- parser (>= 3.3.0.2)
207
+ parser (>= 3.2.2.3)
181
208
  rainbow (>= 2.2.2, < 4.0)
182
209
  regexp_parser (>= 1.8, < 3.0)
183
210
  rexml (>= 3.2.5, < 4.0)
184
- rubocop-ast (>= 1.30.0, < 2.0)
211
+ rubocop-ast (>= 1.28.0, < 2.0)
185
212
  ruby-progressbar (~> 1.7)
186
213
  unicode-display_width (>= 2.4.0, < 3.0)
187
214
  rubocop-ast (1.30.0)
@@ -193,12 +220,6 @@ GEM
193
220
  rubocop-performance (1.20.2)
194
221
  rubocop (>= 1.48.1, < 2.0)
195
222
  rubocop-ast (>= 1.30.0, < 2.0)
196
- rubocop-powerhome (0.5.0)
197
- rubocop
198
- rubocop-performance
199
- rubocop-rails
200
- rubocop-rake
201
- rubocop-rspec
202
223
  rubocop-rails (2.23.1)
203
224
  activesupport (>= 4.2.0)
204
225
  rack (>= 1.1)
@@ -212,8 +233,12 @@ GEM
212
233
  rubocop-factory_bot (~> 2.22)
213
234
  ruby-progressbar (1.13.0)
214
235
  rubyzip (2.3.2)
236
+ sentry-rails (5.5.0)
237
+ railties (>= 5.0)
238
+ sentry-ruby (~> 5.5.0)
215
239
  sentry-ruby (5.5.0)
216
240
  concurrent-ruby (~> 1.0, >= 1.0.2)
241
+ sqlite3 (1.4.4)
217
242
  thor (1.3.0)
218
243
  timeout (0.4.1)
219
244
  tomlrb (2.0.3)
@@ -230,16 +255,20 @@ GEM
230
255
 
231
256
  PLATFORMS
232
257
  arm64-darwin
258
+ x86_64-linux
233
259
 
234
260
  DEPENDENCIES
235
261
  appraisal (~> 2.5.0)
262
+ combustion (~> 1.4)
236
263
  dep_shield!
237
264
  license_finder (>= 7.0)
265
+ nokogiri (< 1.16)
238
266
  rails (= 7.0.6)
239
267
  rake (~> 13.0)
240
268
  rspec (~> 3.0)
241
- rubocop (~> 1.21)
242
- rubocop-powerhome (= 0.5.0)
269
+ rspec-rails (~> 5.1.2)
270
+ rubocop-powerhome!
271
+ sqlite3 (~> 1.4.2)
243
272
 
244
273
  BUNDLED WITH
245
274
  2.5.4
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dep_shield"
4
+
5
+ module DepShield
6
+ # Ties DepShield to rails deprecations system
7
+ class Railtie < Rails::Railtie
8
+ initializer "dep_shield.subscribe" do
9
+ ActiveSupport::Notifications.subscribe("deprecation.rails") do |name, _start, _finish, _id, payload|
10
+ message = payload[:message] || "this is deprecated in rails"
11
+ callstack = payload[:callstack] || caller
12
+
13
+ DepShield.raise_or_capture!(name: name, message: message, callstack: callstack)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -2,23 +2,23 @@
2
2
 
3
3
  module DepShield
4
4
  class Todos
5
- def todo_list
6
- @todo_list ||= begin
7
- paths = Rails.root.glob("**/.deprecation_todo.yml")
5
+ def initialize
6
+ @todo_list = {}
7
+ end
8
+
9
+ def load(pathname)
10
+ return unless File.exist?(pathname)
8
11
 
9
- paths.each_with_object({}) do |path, list|
10
- todos = YAML.load_file(path) || {}
12
+ list = YAML.load_file(pathname) || {}
11
13
 
12
- todos.each do |feature_name, dep_todos|
13
- list[feature_name] ||= []
14
- list[feature_name] += dep_todos
15
- end
16
- end
14
+ list.each do |feature_name, dep_todos|
15
+ @todo_list[feature_name] ||= []
16
+ @todo_list[feature_name] += dep_todos
17
17
  end
18
18
  end
19
19
 
20
20
  def allowed?(name, stack)
21
- todo_list.fetch(name, []).any? do |allowed_file|
21
+ @todo_list.fetch(name, []).any? do |allowed_file|
22
22
  stack.join("\n").include? allowed_file
23
23
  end
24
24
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DepShield
4
- VERSION = "0.1.2"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,161 +1,161 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dep_shield
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jill Klang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-31 00:00:00.000000000 Z
11
+ date: 2024-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: appraisal
14
+ name: nitro_config
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.5.0
20
- type: :development
19
+ version: '0'
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 2.5.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: combustion
28
+ name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
34
- type: :development
33
+ version: 6.0.6.1
34
+ - - "<="
35
+ - !ruby/object:Gem::Version
36
+ version: 7.0.6
37
+ type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
- version: '1.4'
43
+ version: 6.0.6.1
44
+ - - "<="
45
+ - !ruby/object:Gem::Version
46
+ version: 7.0.6
41
47
  - !ruby/object:Gem::Dependency
42
- name: license_finder
48
+ name: sentry-rails
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ">="
51
+ - - '='
46
52
  - !ruby/object:Gem::Version
47
- version: '7.0'
48
- type: :development
53
+ version: 5.5.0
54
+ type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - ">="
58
+ - - '='
53
59
  - !ruby/object:Gem::Version
54
- version: '7.0'
60
+ version: 5.5.0
55
61
  - !ruby/object:Gem::Dependency
56
- name: rspec
62
+ name: sentry-ruby
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - '='
60
66
  - !ruby/object:Gem::Version
61
- version: '3.0'
62
- type: :development
67
+ version: 5.5.0
68
+ type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - "~>"
72
+ - - '='
67
73
  - !ruby/object:Gem::Version
68
- version: '3.0'
74
+ version: 5.5.0
69
75
  - !ruby/object:Gem::Dependency
70
- name: rspec-rails
76
+ name: appraisal
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 5.1.2
81
+ version: 2.5.0
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: 5.1.2
88
+ version: 2.5.0
83
89
  - !ruby/object:Gem::Dependency
84
- name: sqlite3
90
+ name: combustion
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: 1.4.2
95
+ version: '1.4'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: 1.4.2
102
+ version: '1.4'
97
103
  - !ruby/object:Gem::Dependency
98
- name: nitro_config
104
+ name: license_finder
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - ">="
102
108
  - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :runtime
109
+ version: '7.0'
110
+ type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - ">="
109
115
  - !ruby/object:Gem::Version
110
- version: '0'
116
+ version: '7.0'
111
117
  - !ruby/object:Gem::Dependency
112
- name: rails
118
+ name: rspec
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: 6.0.6.1
118
- - - "<"
121
+ - - "~>"
119
122
  - !ruby/object:Gem::Version
120
- version: '7.0'
121
- type: :runtime
123
+ version: '3.0'
124
+ type: :development
122
125
  prerelease: false
123
126
  version_requirements: !ruby/object:Gem::Requirement
124
127
  requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: 6.0.6.1
128
- - - "<"
128
+ - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '7.0'
130
+ version: '3.0'
131
131
  - !ruby/object:Gem::Dependency
132
- name: sentry-rails
132
+ name: rspec-rails
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - '='
135
+ - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: 5.5.0
138
- type: :runtime
137
+ version: 5.1.2
138
+ type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - '='
142
+ - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: 5.5.0
144
+ version: 5.1.2
145
145
  - !ruby/object:Gem::Dependency
146
- name: sentry-ruby
146
+ name: sqlite3
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - '='
149
+ - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: 5.5.0
152
- type: :runtime
151
+ version: 1.4.2
152
+ type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - '='
156
+ - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: 5.5.0
158
+ version: 1.4.2
159
159
  description: Enable alerts about deprecated features & prevent new ones from being
160
160
  introduced.
161
161
  email:
@@ -180,6 +180,7 @@ files:
180
180
  - gemfiles/rails_7_0.gemfile.lock
181
181
  - lib/dep_shield.rb
182
182
  - lib/dep_shield/deprecation.rb
183
+ - lib/dep_shield/railtie.rb
183
184
  - lib/dep_shield/todos.rb
184
185
  - lib/dep_shield/version.rb
185
186
  - sig/dep_shield.rbs