dep_shield 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 44d4c2a3a8f3e972cba7b9895821d280f4817fdd8c1d1ff0ce540ea147a07596
4
+ data.tar.gz: 59a24ea20b53111e769baac758bac6e55b1c7d322bd6c92515c79a1c96f03c84
5
+ SHA512:
6
+ metadata.gz: b5eb9b757f0d55ac8b81f08622e28d066b1766dadb9fc2751160bc6fe5cbb58bb6761aa0cd08bc41b4fbaab6e2ed354ab71a96bdd2db97ef6e4c4a71b56f94d1
7
+ data.tar.gz: 2ef7dce440c24ed3d8d9f95c8c3d70ae8ae368c7ee7243c4ddf5a6f5647d7d1a36a3f4ca27ca12cd83090f91b4f02b2fc14100452bafec5935fd3c7c8dd02358
data/.rubocop.yml ADDED
@@ -0,0 +1,16 @@
1
+ require:
2
+ - rubocop-powerhome
3
+
4
+ AllCops:
5
+ TargetRubyVersion: 2.7
6
+
7
+ Style/StringLiterals:
8
+ Enabled: true
9
+ EnforcedStyle: double_quotes
10
+
11
+ Style/StringLiteralsInInterpolation:
12
+ Enabled: true
13
+ EnforcedStyle: double_quotes
14
+
15
+ Layout/LineLength:
16
+ Max: 120
data/Appraisals ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise "rails-6-0" do
4
+ gem "rails", "6.0.6.1"
5
+ end
6
+
7
+ appraise "rails-6-1" do
8
+ gem "rails", "6.1.7.4"
9
+ end
10
+
11
+ appraise "rails-7-0" do
12
+ gem "rails", "7.0.6"
13
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2024-01-17
4
+
5
+ - Initial release
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright Power Home Remodeling Group, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ require "rubocop/rake_task"
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
data/config.ru ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+
6
+ Bundler.require :default, :development
7
+
8
+ Combustion.initialize! :all
9
+ run Combustion::Application
@@ -0,0 +1,3 @@
1
+ ---
2
+ - - :inherit_from
3
+ - https://raw.githubusercontent.com/powerhome/oss-guide/master/license_rules.yml
data/docs/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # 🛡️ DepShield 🛡️
2
+
3
+ Introducing DepShield, your go-to Ruby gem for proactive deprecation management in your codebase, making upgrading dependencies easier and faster.
4
+
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
+
7
+ ## Usage
8
+
9
+ TODO: Write usage instructions here
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by Appraisal
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gem "rails", "6.0.6.1"
8
+ gem "rake", "~> 13.0"
9
+ gem "rspec", "~> 3.0"
10
+ gem "rubocop", "~> 1.21"
11
+
12
+ gemspec path: "../"
@@ -0,0 +1,243 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ dep_shield (0.1.0)
5
+ sentry-ruby (= 5.5.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (6.0.6.1)
11
+ actionpack (= 6.0.6.1)
12
+ nio4r (~> 2.0)
13
+ websocket-driver (>= 0.6.1)
14
+ actionmailbox (6.0.6.1)
15
+ actionpack (= 6.0.6.1)
16
+ activejob (= 6.0.6.1)
17
+ activerecord (= 6.0.6.1)
18
+ activestorage (= 6.0.6.1)
19
+ activesupport (= 6.0.6.1)
20
+ mail (>= 2.7.1)
21
+ actionmailer (6.0.6.1)
22
+ actionpack (= 6.0.6.1)
23
+ actionview (= 6.0.6.1)
24
+ activejob (= 6.0.6.1)
25
+ mail (~> 2.5, >= 2.5.4)
26
+ rails-dom-testing (~> 2.0)
27
+ actionpack (6.0.6.1)
28
+ actionview (= 6.0.6.1)
29
+ activesupport (= 6.0.6.1)
30
+ rack (~> 2.0, >= 2.0.8)
31
+ rack-test (>= 0.6.3)
32
+ rails-dom-testing (~> 2.0)
33
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
34
+ actiontext (6.0.6.1)
35
+ actionpack (= 6.0.6.1)
36
+ activerecord (= 6.0.6.1)
37
+ activestorage (= 6.0.6.1)
38
+ activesupport (= 6.0.6.1)
39
+ nokogiri (>= 1.8.5)
40
+ actionview (6.0.6.1)
41
+ activesupport (= 6.0.6.1)
42
+ builder (~> 3.1)
43
+ erubi (~> 1.4)
44
+ rails-dom-testing (~> 2.0)
45
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
46
+ activejob (6.0.6.1)
47
+ activesupport (= 6.0.6.1)
48
+ globalid (>= 0.3.6)
49
+ activemodel (6.0.6.1)
50
+ activesupport (= 6.0.6.1)
51
+ activerecord (6.0.6.1)
52
+ activemodel (= 6.0.6.1)
53
+ activesupport (= 6.0.6.1)
54
+ activestorage (6.0.6.1)
55
+ actionpack (= 6.0.6.1)
56
+ activejob (= 6.0.6.1)
57
+ activerecord (= 6.0.6.1)
58
+ marcel (~> 1.0)
59
+ activesupport (6.0.6.1)
60
+ concurrent-ruby (~> 1.0, >= 1.0.2)
61
+ i18n (>= 0.7, < 2)
62
+ minitest (~> 5.1)
63
+ tzinfo (~> 1.1)
64
+ zeitwerk (~> 2.2, >= 2.2.2)
65
+ appraisal (2.5.0)
66
+ bundler
67
+ rake
68
+ thor (>= 0.14.0)
69
+ ast (2.4.2)
70
+ builder (3.2.4)
71
+ concurrent-ruby (1.2.3)
72
+ crass (1.0.6)
73
+ date (3.3.4)
74
+ diff-lcs (1.5.0)
75
+ erubi (1.12.0)
76
+ globalid (1.1.0)
77
+ activesupport (>= 5.0)
78
+ i18n (1.14.1)
79
+ concurrent-ruby (~> 1.0)
80
+ json (2.7.1)
81
+ language_server-protocol (3.17.0.3)
82
+ license_finder (7.1.0)
83
+ bundler
84
+ rubyzip (>= 1, < 3)
85
+ thor (~> 1.2)
86
+ tomlrb (>= 1.3, < 2.1)
87
+ with_env (= 1.1.0)
88
+ xml-simple (~> 1.1.9)
89
+ loofah (2.22.0)
90
+ crass (~> 1.0.2)
91
+ nokogiri (>= 1.12.0)
92
+ mail (2.8.1)
93
+ mini_mime (>= 0.1.1)
94
+ net-imap
95
+ net-pop
96
+ net-smtp
97
+ marcel (1.0.2)
98
+ method_source (1.0.0)
99
+ mini_mime (1.1.5)
100
+ minitest (5.21.1)
101
+ net-imap (0.4.9.1)
102
+ date
103
+ net-protocol
104
+ net-pop (0.1.2)
105
+ net-protocol
106
+ net-protocol (0.2.2)
107
+ timeout
108
+ net-smtp (0.4.0.1)
109
+ net-protocol
110
+ nio4r (2.7.0)
111
+ nokogiri (1.16.0-arm64-darwin)
112
+ racc (~> 1.4)
113
+ parallel (1.24.0)
114
+ parser (3.3.0.4)
115
+ ast (~> 2.4.1)
116
+ racc
117
+ racc (1.7.3)
118
+ rack (2.2.8)
119
+ rack-test (2.1.0)
120
+ rack (>= 1.3)
121
+ rails (6.0.6.1)
122
+ actioncable (= 6.0.6.1)
123
+ actionmailbox (= 6.0.6.1)
124
+ actionmailer (= 6.0.6.1)
125
+ actionpack (= 6.0.6.1)
126
+ actiontext (= 6.0.6.1)
127
+ actionview (= 6.0.6.1)
128
+ activejob (= 6.0.6.1)
129
+ activemodel (= 6.0.6.1)
130
+ activerecord (= 6.0.6.1)
131
+ activestorage (= 6.0.6.1)
132
+ activesupport (= 6.0.6.1)
133
+ bundler (>= 1.3.0)
134
+ railties (= 6.0.6.1)
135
+ sprockets-rails (>= 2.0.0)
136
+ rails-dom-testing (2.2.0)
137
+ activesupport (>= 5.0.0)
138
+ minitest
139
+ nokogiri (>= 1.6)
140
+ rails-html-sanitizer (1.6.0)
141
+ loofah (~> 2.21)
142
+ nokogiri (~> 1.14)
143
+ railties (6.0.6.1)
144
+ actionpack (= 6.0.6.1)
145
+ activesupport (= 6.0.6.1)
146
+ method_source
147
+ rake (>= 0.8.7)
148
+ thor (>= 0.20.3, < 2.0)
149
+ rainbow (3.1.1)
150
+ rake (13.1.0)
151
+ regexp_parser (2.9.0)
152
+ rexml (3.2.6)
153
+ rspec (3.12.0)
154
+ rspec-core (~> 3.12.0)
155
+ rspec-expectations (~> 3.12.0)
156
+ rspec-mocks (~> 3.12.0)
157
+ rspec-core (3.12.2)
158
+ rspec-support (~> 3.12.0)
159
+ rspec-expectations (3.12.3)
160
+ diff-lcs (>= 1.2.0, < 2.0)
161
+ rspec-support (~> 3.12.0)
162
+ rspec-mocks (3.12.6)
163
+ diff-lcs (>= 1.2.0, < 2.0)
164
+ rspec-support (~> 3.12.0)
165
+ rspec-support (3.12.1)
166
+ rubocop (1.60.1)
167
+ json (~> 2.3)
168
+ language_server-protocol (>= 3.17.0)
169
+ parallel (~> 1.10)
170
+ parser (>= 3.3.0.2)
171
+ rainbow (>= 2.2.2, < 4.0)
172
+ regexp_parser (>= 1.8, < 3.0)
173
+ rexml (>= 3.2.5, < 4.0)
174
+ rubocop-ast (>= 1.30.0, < 2.0)
175
+ ruby-progressbar (~> 1.7)
176
+ unicode-display_width (>= 2.4.0, < 3.0)
177
+ rubocop-ast (1.30.0)
178
+ parser (>= 3.2.1.0)
179
+ rubocop-capybara (2.20.0)
180
+ rubocop (~> 1.41)
181
+ rubocop-factory_bot (2.25.1)
182
+ rubocop (~> 1.41)
183
+ rubocop-performance (1.20.2)
184
+ rubocop (>= 1.48.1, < 2.0)
185
+ 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
+ rubocop-rails (2.23.1)
193
+ activesupport (>= 4.2.0)
194
+ rack (>= 1.1)
195
+ rubocop (>= 1.33.0, < 2.0)
196
+ rubocop-ast (>= 1.30.0, < 2.0)
197
+ rubocop-rake (0.6.0)
198
+ rubocop (~> 1.0)
199
+ rubocop-rspec (2.26.1)
200
+ rubocop (~> 1.40)
201
+ rubocop-capybara (~> 2.17)
202
+ rubocop-factory_bot (~> 2.22)
203
+ ruby-progressbar (1.13.0)
204
+ rubyzip (2.3.2)
205
+ sentry-ruby (5.5.0)
206
+ concurrent-ruby (~> 1.0, >= 1.0.2)
207
+ sprockets (4.2.1)
208
+ concurrent-ruby (~> 1.0)
209
+ rack (>= 2.2.4, < 4)
210
+ sprockets-rails (3.4.2)
211
+ actionpack (>= 5.2)
212
+ activesupport (>= 5.2)
213
+ sprockets (>= 3.0.0)
214
+ thor (1.3.0)
215
+ thread_safe (0.3.6)
216
+ timeout (0.4.1)
217
+ tomlrb (2.0.3)
218
+ tzinfo (1.2.11)
219
+ thread_safe (~> 0.1)
220
+ unicode-display_width (2.5.0)
221
+ websocket-driver (0.7.6)
222
+ websocket-extensions (>= 0.1.0)
223
+ websocket-extensions (0.1.5)
224
+ with_env (1.1.0)
225
+ xml-simple (1.1.9)
226
+ rexml
227
+ zeitwerk (2.6.12)
228
+
229
+ PLATFORMS
230
+ arm64-darwin
231
+
232
+ DEPENDENCIES
233
+ appraisal (~> 2.5.0)
234
+ dep_shield!
235
+ license_finder (>= 7.0)
236
+ rails (= 6.0.6.1)
237
+ rake (~> 13.0)
238
+ rspec (~> 3.0)
239
+ rubocop (~> 1.21)
240
+ rubocop-powerhome (= 0.5.0)
241
+
242
+ BUNDLED WITH
243
+ 2.5.4
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by Appraisal
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gem "rails", "6.1.7.4"
8
+ gem "rake", "~> 13.0"
9
+ gem "rspec", "~> 3.0"
10
+ gem "rubocop", "~> 1.21"
11
+
12
+ gemspec path: "../"
@@ -0,0 +1,246 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ dep_shield (0.1.0)
5
+ sentry-ruby (= 5.5.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (6.1.7.4)
11
+ actionpack (= 6.1.7.4)
12
+ activesupport (= 6.1.7.4)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ actionmailbox (6.1.7.4)
16
+ actionpack (= 6.1.7.4)
17
+ activejob (= 6.1.7.4)
18
+ activerecord (= 6.1.7.4)
19
+ activestorage (= 6.1.7.4)
20
+ activesupport (= 6.1.7.4)
21
+ mail (>= 2.7.1)
22
+ actionmailer (6.1.7.4)
23
+ actionpack (= 6.1.7.4)
24
+ actionview (= 6.1.7.4)
25
+ activejob (= 6.1.7.4)
26
+ activesupport (= 6.1.7.4)
27
+ mail (~> 2.5, >= 2.5.4)
28
+ rails-dom-testing (~> 2.0)
29
+ actionpack (6.1.7.4)
30
+ actionview (= 6.1.7.4)
31
+ activesupport (= 6.1.7.4)
32
+ rack (~> 2.0, >= 2.0.9)
33
+ rack-test (>= 0.6.3)
34
+ rails-dom-testing (~> 2.0)
35
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
36
+ actiontext (6.1.7.4)
37
+ actionpack (= 6.1.7.4)
38
+ activerecord (= 6.1.7.4)
39
+ activestorage (= 6.1.7.4)
40
+ activesupport (= 6.1.7.4)
41
+ nokogiri (>= 1.8.5)
42
+ actionview (6.1.7.4)
43
+ activesupport (= 6.1.7.4)
44
+ builder (~> 3.1)
45
+ erubi (~> 1.4)
46
+ rails-dom-testing (~> 2.0)
47
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
48
+ activejob (6.1.7.4)
49
+ activesupport (= 6.1.7.4)
50
+ globalid (>= 0.3.6)
51
+ activemodel (6.1.7.4)
52
+ activesupport (= 6.1.7.4)
53
+ activerecord (6.1.7.4)
54
+ activemodel (= 6.1.7.4)
55
+ activesupport (= 6.1.7.4)
56
+ activestorage (6.1.7.4)
57
+ actionpack (= 6.1.7.4)
58
+ activejob (= 6.1.7.4)
59
+ activerecord (= 6.1.7.4)
60
+ activesupport (= 6.1.7.4)
61
+ marcel (~> 1.0)
62
+ mini_mime (>= 1.1.0)
63
+ activesupport (6.1.7.4)
64
+ concurrent-ruby (~> 1.0, >= 1.0.2)
65
+ i18n (>= 1.6, < 2)
66
+ minitest (>= 5.1)
67
+ tzinfo (~> 2.0)
68
+ zeitwerk (~> 2.3)
69
+ appraisal (2.5.0)
70
+ bundler
71
+ rake
72
+ thor (>= 0.14.0)
73
+ ast (2.4.2)
74
+ builder (3.2.4)
75
+ concurrent-ruby (1.2.3)
76
+ crass (1.0.6)
77
+ date (3.3.4)
78
+ diff-lcs (1.5.0)
79
+ erubi (1.12.0)
80
+ globalid (1.2.1)
81
+ activesupport (>= 6.1)
82
+ i18n (1.14.1)
83
+ concurrent-ruby (~> 1.0)
84
+ json (2.7.1)
85
+ language_server-protocol (3.17.0.3)
86
+ license_finder (7.1.0)
87
+ bundler
88
+ rubyzip (>= 1, < 3)
89
+ thor (~> 1.2)
90
+ tomlrb (>= 1.3, < 2.1)
91
+ with_env (= 1.1.0)
92
+ xml-simple (~> 1.1.9)
93
+ loofah (2.22.0)
94
+ crass (~> 1.0.2)
95
+ nokogiri (>= 1.12.0)
96
+ mail (2.8.1)
97
+ mini_mime (>= 0.1.1)
98
+ net-imap
99
+ net-pop
100
+ net-smtp
101
+ marcel (1.0.2)
102
+ method_source (1.0.0)
103
+ mini_mime (1.1.5)
104
+ minitest (5.21.1)
105
+ net-imap (0.4.9.1)
106
+ date
107
+ net-protocol
108
+ net-pop (0.1.2)
109
+ net-protocol
110
+ net-protocol (0.2.2)
111
+ timeout
112
+ net-smtp (0.4.0.1)
113
+ net-protocol
114
+ nio4r (2.7.0)
115
+ nokogiri (1.16.0-arm64-darwin)
116
+ racc (~> 1.4)
117
+ parallel (1.24.0)
118
+ parser (3.3.0.4)
119
+ ast (~> 2.4.1)
120
+ racc
121
+ racc (1.7.3)
122
+ rack (2.2.8)
123
+ rack-test (2.1.0)
124
+ rack (>= 1.3)
125
+ rails (6.1.7.4)
126
+ actioncable (= 6.1.7.4)
127
+ actionmailbox (= 6.1.7.4)
128
+ actionmailer (= 6.1.7.4)
129
+ actionpack (= 6.1.7.4)
130
+ actiontext (= 6.1.7.4)
131
+ actionview (= 6.1.7.4)
132
+ activejob (= 6.1.7.4)
133
+ activemodel (= 6.1.7.4)
134
+ activerecord (= 6.1.7.4)
135
+ activestorage (= 6.1.7.4)
136
+ activesupport (= 6.1.7.4)
137
+ bundler (>= 1.15.0)
138
+ railties (= 6.1.7.4)
139
+ sprockets-rails (>= 2.0.0)
140
+ rails-dom-testing (2.2.0)
141
+ activesupport (>= 5.0.0)
142
+ minitest
143
+ nokogiri (>= 1.6)
144
+ rails-html-sanitizer (1.6.0)
145
+ loofah (~> 2.21)
146
+ nokogiri (~> 1.14)
147
+ railties (6.1.7.4)
148
+ actionpack (= 6.1.7.4)
149
+ activesupport (= 6.1.7.4)
150
+ method_source
151
+ rake (>= 12.2)
152
+ thor (~> 1.0)
153
+ rainbow (3.1.1)
154
+ rake (13.1.0)
155
+ regexp_parser (2.9.0)
156
+ rexml (3.2.6)
157
+ rspec (3.12.0)
158
+ rspec-core (~> 3.12.0)
159
+ rspec-expectations (~> 3.12.0)
160
+ rspec-mocks (~> 3.12.0)
161
+ rspec-core (3.12.2)
162
+ rspec-support (~> 3.12.0)
163
+ rspec-expectations (3.12.3)
164
+ diff-lcs (>= 1.2.0, < 2.0)
165
+ rspec-support (~> 3.12.0)
166
+ rspec-mocks (3.12.6)
167
+ diff-lcs (>= 1.2.0, < 2.0)
168
+ rspec-support (~> 3.12.0)
169
+ rspec-support (3.12.1)
170
+ rubocop (1.60.1)
171
+ json (~> 2.3)
172
+ language_server-protocol (>= 3.17.0)
173
+ parallel (~> 1.10)
174
+ parser (>= 3.3.0.2)
175
+ rainbow (>= 2.2.2, < 4.0)
176
+ regexp_parser (>= 1.8, < 3.0)
177
+ rexml (>= 3.2.5, < 4.0)
178
+ rubocop-ast (>= 1.30.0, < 2.0)
179
+ ruby-progressbar (~> 1.7)
180
+ unicode-display_width (>= 2.4.0, < 3.0)
181
+ rubocop-ast (1.30.0)
182
+ parser (>= 3.2.1.0)
183
+ rubocop-capybara (2.20.0)
184
+ rubocop (~> 1.41)
185
+ rubocop-factory_bot (2.25.1)
186
+ rubocop (~> 1.41)
187
+ rubocop-performance (1.20.2)
188
+ rubocop (>= 1.48.1, < 2.0)
189
+ 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
+ rubocop-rails (2.23.1)
197
+ activesupport (>= 4.2.0)
198
+ rack (>= 1.1)
199
+ rubocop (>= 1.33.0, < 2.0)
200
+ rubocop-ast (>= 1.30.0, < 2.0)
201
+ rubocop-rake (0.6.0)
202
+ rubocop (~> 1.0)
203
+ rubocop-rspec (2.26.1)
204
+ rubocop (~> 1.40)
205
+ rubocop-capybara (~> 2.17)
206
+ rubocop-factory_bot (~> 2.22)
207
+ ruby-progressbar (1.13.0)
208
+ rubyzip (2.3.2)
209
+ sentry-ruby (5.5.0)
210
+ concurrent-ruby (~> 1.0, >= 1.0.2)
211
+ sprockets (4.2.1)
212
+ concurrent-ruby (~> 1.0)
213
+ rack (>= 2.2.4, < 4)
214
+ sprockets-rails (3.4.2)
215
+ actionpack (>= 5.2)
216
+ activesupport (>= 5.2)
217
+ sprockets (>= 3.0.0)
218
+ thor (1.3.0)
219
+ timeout (0.4.1)
220
+ tomlrb (2.0.3)
221
+ tzinfo (2.0.6)
222
+ concurrent-ruby (~> 1.0)
223
+ unicode-display_width (2.5.0)
224
+ websocket-driver (0.7.6)
225
+ websocket-extensions (>= 0.1.0)
226
+ websocket-extensions (0.1.5)
227
+ with_env (1.1.0)
228
+ xml-simple (1.1.9)
229
+ rexml
230
+ zeitwerk (2.6.12)
231
+
232
+ PLATFORMS
233
+ arm64-darwin
234
+
235
+ DEPENDENCIES
236
+ appraisal (~> 2.5.0)
237
+ dep_shield!
238
+ license_finder (>= 7.0)
239
+ rails (= 6.1.7.4)
240
+ rake (~> 13.0)
241
+ rspec (~> 3.0)
242
+ rubocop (~> 1.21)
243
+ rubocop-powerhome (= 0.5.0)
244
+
245
+ BUNDLED WITH
246
+ 2.5.4
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by Appraisal
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gem "rails", "7.0.6"
8
+ gem "rake", "~> 13.0"
9
+ gem "rspec", "~> 3.0"
10
+ gem "rubocop", "~> 1.21"
11
+
12
+ gemspec path: "../"
@@ -0,0 +1,245 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ dep_shield (0.1.0)
5
+ sentry-ruby (= 5.5.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (7.0.6)
11
+ actionpack (= 7.0.6)
12
+ activesupport (= 7.0.6)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ actionmailbox (7.0.6)
16
+ actionpack (= 7.0.6)
17
+ activejob (= 7.0.6)
18
+ activerecord (= 7.0.6)
19
+ activestorage (= 7.0.6)
20
+ activesupport (= 7.0.6)
21
+ mail (>= 2.7.1)
22
+ net-imap
23
+ net-pop
24
+ net-smtp
25
+ actionmailer (7.0.6)
26
+ actionpack (= 7.0.6)
27
+ actionview (= 7.0.6)
28
+ activejob (= 7.0.6)
29
+ activesupport (= 7.0.6)
30
+ mail (~> 2.5, >= 2.5.4)
31
+ net-imap
32
+ net-pop
33
+ net-smtp
34
+ rails-dom-testing (~> 2.0)
35
+ actionpack (7.0.6)
36
+ actionview (= 7.0.6)
37
+ activesupport (= 7.0.6)
38
+ rack (~> 2.0, >= 2.2.4)
39
+ rack-test (>= 0.6.3)
40
+ rails-dom-testing (~> 2.0)
41
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
+ actiontext (7.0.6)
43
+ actionpack (= 7.0.6)
44
+ activerecord (= 7.0.6)
45
+ activestorage (= 7.0.6)
46
+ activesupport (= 7.0.6)
47
+ globalid (>= 0.6.0)
48
+ nokogiri (>= 1.8.5)
49
+ actionview (7.0.6)
50
+ activesupport (= 7.0.6)
51
+ builder (~> 3.1)
52
+ erubi (~> 1.4)
53
+ rails-dom-testing (~> 2.0)
54
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
55
+ activejob (7.0.6)
56
+ activesupport (= 7.0.6)
57
+ globalid (>= 0.3.6)
58
+ activemodel (7.0.6)
59
+ activesupport (= 7.0.6)
60
+ activerecord (7.0.6)
61
+ activemodel (= 7.0.6)
62
+ activesupport (= 7.0.6)
63
+ activestorage (7.0.6)
64
+ actionpack (= 7.0.6)
65
+ activejob (= 7.0.6)
66
+ activerecord (= 7.0.6)
67
+ activesupport (= 7.0.6)
68
+ marcel (~> 1.0)
69
+ mini_mime (>= 1.1.0)
70
+ activesupport (7.0.6)
71
+ concurrent-ruby (~> 1.0, >= 1.0.2)
72
+ i18n (>= 1.6, < 2)
73
+ minitest (>= 5.1)
74
+ tzinfo (~> 2.0)
75
+ appraisal (2.5.0)
76
+ bundler
77
+ rake
78
+ thor (>= 0.14.0)
79
+ ast (2.4.2)
80
+ builder (3.2.4)
81
+ concurrent-ruby (1.2.3)
82
+ crass (1.0.6)
83
+ date (3.3.4)
84
+ diff-lcs (1.5.0)
85
+ erubi (1.12.0)
86
+ globalid (1.2.1)
87
+ activesupport (>= 6.1)
88
+ i18n (1.14.1)
89
+ concurrent-ruby (~> 1.0)
90
+ json (2.7.1)
91
+ language_server-protocol (3.17.0.3)
92
+ license_finder (7.1.0)
93
+ bundler
94
+ rubyzip (>= 1, < 3)
95
+ thor (~> 1.2)
96
+ tomlrb (>= 1.3, < 2.1)
97
+ with_env (= 1.1.0)
98
+ xml-simple (~> 1.1.9)
99
+ loofah (2.22.0)
100
+ crass (~> 1.0.2)
101
+ nokogiri (>= 1.12.0)
102
+ mail (2.8.1)
103
+ mini_mime (>= 0.1.1)
104
+ net-imap
105
+ net-pop
106
+ net-smtp
107
+ marcel (1.0.2)
108
+ method_source (1.0.0)
109
+ mini_mime (1.1.5)
110
+ minitest (5.21.1)
111
+ net-imap (0.4.9.1)
112
+ date
113
+ net-protocol
114
+ net-pop (0.1.2)
115
+ net-protocol
116
+ net-protocol (0.2.2)
117
+ timeout
118
+ net-smtp (0.4.0.1)
119
+ net-protocol
120
+ nio4r (2.7.0)
121
+ nokogiri (1.16.0-arm64-darwin)
122
+ racc (~> 1.4)
123
+ parallel (1.24.0)
124
+ parser (3.3.0.4)
125
+ ast (~> 2.4.1)
126
+ racc
127
+ racc (1.7.3)
128
+ rack (2.2.8)
129
+ rack-test (2.1.0)
130
+ rack (>= 1.3)
131
+ rails (7.0.6)
132
+ actioncable (= 7.0.6)
133
+ actionmailbox (= 7.0.6)
134
+ actionmailer (= 7.0.6)
135
+ actionpack (= 7.0.6)
136
+ actiontext (= 7.0.6)
137
+ actionview (= 7.0.6)
138
+ activejob (= 7.0.6)
139
+ activemodel (= 7.0.6)
140
+ activerecord (= 7.0.6)
141
+ activestorage (= 7.0.6)
142
+ activesupport (= 7.0.6)
143
+ bundler (>= 1.15.0)
144
+ railties (= 7.0.6)
145
+ rails-dom-testing (2.2.0)
146
+ activesupport (>= 5.0.0)
147
+ minitest
148
+ nokogiri (>= 1.6)
149
+ rails-html-sanitizer (1.6.0)
150
+ loofah (~> 2.21)
151
+ nokogiri (~> 1.14)
152
+ railties (7.0.6)
153
+ actionpack (= 7.0.6)
154
+ activesupport (= 7.0.6)
155
+ method_source
156
+ rake (>= 12.2)
157
+ thor (~> 1.0)
158
+ zeitwerk (~> 2.5)
159
+ rainbow (3.1.1)
160
+ rake (13.1.0)
161
+ regexp_parser (2.9.0)
162
+ rexml (3.2.6)
163
+ rspec (3.12.0)
164
+ rspec-core (~> 3.12.0)
165
+ rspec-expectations (~> 3.12.0)
166
+ rspec-mocks (~> 3.12.0)
167
+ rspec-core (3.12.2)
168
+ rspec-support (~> 3.12.0)
169
+ rspec-expectations (3.12.3)
170
+ diff-lcs (>= 1.2.0, < 2.0)
171
+ rspec-support (~> 3.12.0)
172
+ rspec-mocks (3.12.6)
173
+ diff-lcs (>= 1.2.0, < 2.0)
174
+ rspec-support (~> 3.12.0)
175
+ rspec-support (3.12.1)
176
+ rubocop (1.60.1)
177
+ json (~> 2.3)
178
+ language_server-protocol (>= 3.17.0)
179
+ parallel (~> 1.10)
180
+ parser (>= 3.3.0.2)
181
+ rainbow (>= 2.2.2, < 4.0)
182
+ regexp_parser (>= 1.8, < 3.0)
183
+ rexml (>= 3.2.5, < 4.0)
184
+ rubocop-ast (>= 1.30.0, < 2.0)
185
+ ruby-progressbar (~> 1.7)
186
+ unicode-display_width (>= 2.4.0, < 3.0)
187
+ rubocop-ast (1.30.0)
188
+ parser (>= 3.2.1.0)
189
+ rubocop-capybara (2.20.0)
190
+ rubocop (~> 1.41)
191
+ rubocop-factory_bot (2.25.1)
192
+ rubocop (~> 1.41)
193
+ rubocop-performance (1.20.2)
194
+ rubocop (>= 1.48.1, < 2.0)
195
+ 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
+ rubocop-rails (2.23.1)
203
+ activesupport (>= 4.2.0)
204
+ rack (>= 1.1)
205
+ rubocop (>= 1.33.0, < 2.0)
206
+ rubocop-ast (>= 1.30.0, < 2.0)
207
+ rubocop-rake (0.6.0)
208
+ rubocop (~> 1.0)
209
+ rubocop-rspec (2.26.1)
210
+ rubocop (~> 1.40)
211
+ rubocop-capybara (~> 2.17)
212
+ rubocop-factory_bot (~> 2.22)
213
+ ruby-progressbar (1.13.0)
214
+ rubyzip (2.3.2)
215
+ sentry-ruby (5.5.0)
216
+ concurrent-ruby (~> 1.0, >= 1.0.2)
217
+ thor (1.3.0)
218
+ timeout (0.4.1)
219
+ tomlrb (2.0.3)
220
+ tzinfo (2.0.6)
221
+ concurrent-ruby (~> 1.0)
222
+ unicode-display_width (2.5.0)
223
+ websocket-driver (0.7.6)
224
+ websocket-extensions (>= 0.1.0)
225
+ websocket-extensions (0.1.5)
226
+ with_env (1.1.0)
227
+ xml-simple (1.1.9)
228
+ rexml
229
+ zeitwerk (2.6.12)
230
+
231
+ PLATFORMS
232
+ arm64-darwin
233
+
234
+ DEPENDENCIES
235
+ appraisal (~> 2.5.0)
236
+ dep_shield!
237
+ license_finder (>= 7.0)
238
+ rails (= 7.0.6)
239
+ rake (~> 13.0)
240
+ rspec (~> 3.0)
241
+ rubocop (~> 1.21)
242
+ rubocop-powerhome (= 0.5.0)
243
+
244
+ BUNDLED WITH
245
+ 2.5.4
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DepShield
4
+ class Deprecation
5
+ attr_reader :name, :error, :stack
6
+
7
+ def initialize(name:, message:, callstack:)
8
+ @name = name
9
+ @stack = cleaner.clean(callstack.map(&:to_s))
10
+ @error = DepShield::Error.new("#{name}:\n#{message}", stack)
11
+ end
12
+
13
+ def raise_or_capture!
14
+ Rails.logger.warn("NITRO DEPRECATION WARNING") { "#{error}\n#{stack}" }
15
+ return if DepShield.todos.allowed?(name, stack)
16
+
17
+ raise error unless NitroConfig.get("nitro_errors/capture_deprecation")
18
+
19
+ Sentry.capture_exception(
20
+ error,
21
+ tags: { environment: Rails.env, deprecation_error: name }
22
+ )
23
+ end
24
+
25
+ private
26
+
27
+ def cleaner
28
+ @cleaner ||= ActiveSupport::BacktraceCleaner.new.tap do |cleaner|
29
+ cleaner.add_filter { |line| line.gsub(/^(.*?:.*?):.*/, '\1') }
30
+ cleaner.add_silencer { |line| line.include?(ENV.fetch("GEM_HOME", nil)) }
31
+ cleaner.add_silencer { |line| line.start_with?("bin/") }
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DepShield
4
+ class Todos
5
+ def todo_list
6
+ @todo_list ||= begin
7
+ paths = Rails.root.glob("**/.deprecation_todo.yml")
8
+
9
+ paths.each_with_object({}) do |path, list|
10
+ YAML.load_file(path)&.each do |feature_name, dep_todos|
11
+ list[feature_name] ||= []
12
+ list[feature_name] += dep_todos
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ def allowed?(name, stack)
19
+ todo_list.fetch(name, []).any? do |allowed_file|
20
+ stack.join("\n").include? allowed_file
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DepShield
4
+ VERSION = "0.1.1"
5
+ end
data/lib/dep_shield.rb ADDED
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "nitro_config"
4
+ require "rails/all"
5
+ require "sentry-rails"
6
+ require "sentry-ruby"
7
+
8
+ require_relative "dep_shield/deprecation"
9
+ require_relative "dep_shield/todos"
10
+ require_relative "dep_shield/version"
11
+
12
+ module DepShield
13
+ class Error < StandardError
14
+ def initialize(message, callstack)
15
+ super(message)
16
+
17
+ case callstack
18
+ when Array
19
+ set_backtrace callstack.map(&:to_s)
20
+ when Thread::Backtrace::Location, String
21
+ set_backtrace [callstack.to_s]
22
+ end
23
+ end
24
+ end
25
+
26
+ module_function
27
+
28
+ def todos
29
+ @todos ||= DepShield::Todos.new
30
+ end
31
+
32
+ # Takes a deprecation message string. Warns, then raises or reports to Sentry
33
+ #
34
+ # @param name [String]
35
+ # @param message [String]
36
+ # @param callstack [Array<String>]
37
+ # @yieldparam scope [Scope]
38
+ # @return [Event, nil]
39
+ def raise_or_capture!(name:, message:, callstack: caller, **)
40
+ ::DepShield::Deprecation.new(
41
+ name: name, message: message, callstack: callstack
42
+ ).raise_or_capture!
43
+ end
44
+ end
@@ -0,0 +1,4 @@
1
+ module DepShield
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,213 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dep_shield
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Jill Klang
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-01-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: appraisal
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.5.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.5.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: combustion
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: license_finder
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '7.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '7.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 5.1.2
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 5.1.2
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.4.2
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.4.2
97
+ - !ruby/object:Gem::Dependency
98
+ name: nitro_config
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 6.0.6.1
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: '7.0'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 6.0.6.1
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '7.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: sentry-rails
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '='
136
+ - !ruby/object:Gem::Version
137
+ version: 5.5.0
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '='
143
+ - !ruby/object:Gem::Version
144
+ version: 5.5.0
145
+ - !ruby/object:Gem::Dependency
146
+ name: sentry-ruby
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - '='
150
+ - !ruby/object:Gem::Version
151
+ version: 5.5.0
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '='
157
+ - !ruby/object:Gem::Version
158
+ version: 5.5.0
159
+ description: Enable alerts about deprecated features & prevent new ones from being
160
+ introduced.
161
+ email:
162
+ - jillian.emilie@powerhrg.com
163
+ executables: []
164
+ extensions: []
165
+ extra_rdoc_files: []
166
+ files:
167
+ - ".rubocop.yml"
168
+ - Appraisals
169
+ - CHANGELOG.md
170
+ - LICENSE.txt
171
+ - Rakefile
172
+ - config.ru
173
+ - doc/dependency_decisions.yml
174
+ - docs/README.md
175
+ - gemfiles/rails_6_0.gemfile
176
+ - gemfiles/rails_6_0.gemfile.lock
177
+ - gemfiles/rails_6_1.gemfile
178
+ - gemfiles/rails_6_1.gemfile.lock
179
+ - gemfiles/rails_7_0.gemfile
180
+ - gemfiles/rails_7_0.gemfile.lock
181
+ - lib/dep_shield.rb
182
+ - lib/dep_shield/deprecation.rb
183
+ - lib/dep_shield/todos.rb
184
+ - lib/dep_shield/version.rb
185
+ - sig/dep_shield.rbs
186
+ homepage: https://github.com/powerhome/power-tools
187
+ licenses:
188
+ - MIT
189
+ metadata:
190
+ rubygems_mfa_required: 'true'
191
+ homepage_uri: https://github.com/powerhome/power-tools
192
+ source_code_uri: https://github.com/powerhome/power-tools
193
+ changelog_uri: https://github.com/powerhome/power-tools/blob/main/packages/data_taster/docs/CHANGELOG.md
194
+ post_install_message:
195
+ rdoc_options: []
196
+ require_paths:
197
+ - lib
198
+ required_ruby_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '2.7'
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ requirements: []
209
+ rubygems_version: 3.5.3
210
+ signing_key:
211
+ specification_version: 4
212
+ summary: Vigilant alerts for deprecated or outdated code.
213
+ test_files: []