rubocop-ruby2_2 1.0.4 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +42 -10
- data/CONTRIBUTING.md +25 -11
- data/LICENSE.txt +1 -1
- data/README.md +271 -155
- data/SECURITY.md +5 -4
- data/lib/rubocop/ruby2_2/railtie.rb +14 -0
- data/lib/rubocop/ruby2_2/rakelib/rubocop_gradual.rake +11 -0
- data/lib/rubocop/ruby2_2/tasks.rake +4 -0
- data/lib/rubocop/ruby2_2/version.rb +3 -1
- data/lib/rubocop/ruby2_2.rb +14 -0
- data/rubocop-lts/rails.yml +11 -0
- data/rubocop-lts/rails_rspec.yml +6 -0
- data/rubocop-lts/rspec.yml +9 -0
- data/rubocop-lts/ruby.yml +43 -0
- data/rubocop-lts/ruby_rspec.yml +6 -0
- data/rubocop-lts/rubygem.yml +6 -0
- data/rubocop-lts/rubygem_rspec.yml +4 -0
- data/rubocop-lts/strict/rails.yml +22 -0
- data/rubocop-lts/strict/rspec.yml +14 -0
- data/rubocop-lts/strict/ruby.yml +14 -0
- data/rubocop.yml +14 -10
- data/sig/rubocop/ruby2_2.rbs +4 -2
- data.tar.gz.sig +0 -0
- metadata +193 -33
- metadata.gz.sig +0 -0
- data/spec/config/rspec/rspec_core.rb +0 -13
- data/spec/rubocop/ruby2_2_spec.rb +0 -7
- data/spec/spec_helper.rb +0 -7
data/README.md
CHANGED
@@ -16,18 +16,106 @@
|
|
16
16
|
</a>
|
17
17
|
</p>
|
18
18
|
|
19
|
-
|
19
|
+
---
|
20
|
+
|
21
|
+
NOTE: You might be interested in [`rubocop-lts`][rlts] which sits as a higher level than this gem, and can keep pace with whatever version of Ruby you happen to be on.
|
22
|
+
|
23
|
+
| Gem Name | Version | Downloads | CI | Activity |
|
24
|
+
|-------------------------------|-------------------------------------|----------------------------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
25
|
+
| [`rubocop-lts`][⛳️lts-gh] | [![Gem Version][⛳️lts-vi]][⛳️lts-g] | [![Total DL][🖇️lts-dti]][⛳️lts-g] [![DL Rank][🏘️lts-rti]][⛳️lts-g] | [![Current][🚎lts-cwfi]][🚎lts-cwf] | [![Open Issues][📗lts-ioi]][📗lts-io] [![Closed Issues][🚀lts-ici]][🚀lts-ic] [![Open PRs][💄lts-poi]][💄lts-po] [![Closed PRs][👽lts-pci]][👽lts-pc] |
|
26
|
+
| [`rubocop-ruby2_2`][⛳️ini-gh] | [![Gem Version][⛳️ini-vi]][⛳️ini-g] | [![Total DL][🖇️ini-dti]][⛳️ini-g] [![DL Rank][🏘️ini-rti]][⛳️ini-g] | [![Current][🚎ini-cwfi]][🚎ini-cwf] [![Heads][🖐ini-hwfi]][🖐ini-hwf] | [![Open Issues][📗ini-ioi]][📗ini-io] [![Closed Issues][🚀ini-ici]][🚀ini-ic] [![Open PRs][💄ini-poi]][💄ini-po] [![Closed PRs][👽ini-pci]][👽ini-pc] |
|
27
|
+
|
28
|
+
<!-- columnar badge #s for Project Health table:
|
29
|
+
⛳️
|
30
|
+
🖇
|
31
|
+
🏘
|
32
|
+
🚎
|
33
|
+
🖐
|
34
|
+
🧮
|
35
|
+
📗
|
36
|
+
🚀
|
37
|
+
💄
|
38
|
+
👽
|
39
|
+
-->
|
40
|
+
|
41
|
+
[⛳️lts-vi]: http://img.shields.io/gem/v/rubocop-lts.svg
|
42
|
+
[🖇️lts-dti]: https://img.shields.io/gem/dt/rubocop-lts.svg
|
43
|
+
[🏘️lts-rti]: https://img.shields.io/gem/rt/rubocop-lts.svg
|
44
|
+
[🚎lts-cwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml
|
45
|
+
[🚎lts-cwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml/badge.svg
|
46
|
+
[🖐lts-hwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml
|
47
|
+
[🖐lts-hwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml/badge.svg
|
48
|
+
[🧮lts-lwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml
|
49
|
+
[🧮lts-lwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml/badge.svg
|
50
|
+
[📗lts-io]: https://github.com/rubocop-lts/rubocop-lts/issues
|
51
|
+
[📗lts-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-lts
|
52
|
+
[🚀lts-ic]: https://github.com/rubocop-lts/rubocop-lts/issues?q=is%3Aissue+is%3Aclosed
|
53
|
+
[🚀lts-ici]: https://img.shields.io/github/issues-closed-raw/rubocop-lts/rubocop-lts
|
54
|
+
[💄lts-po]: https://github.com/rubocop-lts/rubocop-lts/pulls
|
55
|
+
[💄lts-poi]: https://img.shields.io/github/issues-pr/rubocop-lts/rubocop-lts
|
56
|
+
[👽lts-pc]: https://github.com/rubocop-lts/rubocop-lts/pulls?q=is%3Apr+is%3Aclosed
|
57
|
+
[👽lts-pci]: https://img.shields.io/github/issues-pr-closed/rubocop-lts/rubocop-lts
|
58
|
+
[⛳️lts-g]: https://rubygems.org/gems/rubocop-lts
|
59
|
+
[⛳️lts-gh]: https://github.com/rubocop-lts/rubocop-lts
|
60
|
+
|
61
|
+
[⛳️ini-vi]: http://img.shields.io/gem/v/rubocop-ruby2_2.svg
|
62
|
+
[🖇️ini-dti]: https://img.shields.io/gem/dt/rubocop-ruby2_2.svg
|
63
|
+
[🏘️ini-rti]: https://img.shields.io/gem/rt/rubocop-ruby2_2.svg
|
64
|
+
[🚎ini-cwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml
|
65
|
+
[🚎ini-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml/badge.svg
|
66
|
+
[🖐ini-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml
|
67
|
+
[🖐ini-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml/badge.svg
|
68
|
+
[🧮ini-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/legacy.yml
|
69
|
+
[🧮ini-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/legacy.yml/badge.svg
|
70
|
+
[📗ini-io]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
|
71
|
+
[📗ini-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_2
|
72
|
+
[🚀ini-ic]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues?q=is%3Aissue+is%3Aclosed
|
73
|
+
[🚀ini-ici]: https://img.shields.io/github/issues-closed-raw/rubocop-lts/rubocop-ruby2_2
|
74
|
+
[💄ini-po]: https://github.com/rubocop-lts/rubocop-ruby2_2/pulls
|
75
|
+
[💄ini-poi]: https://img.shields.io/github/issues-pr/rubocop-lts/rubocop-ruby2_2
|
76
|
+
[👽ini-pc]: https://github.com/rubocop-lts/rubocop-ruby2_2/pulls?q=is%3Apr+is%3Aclosed
|
77
|
+
[👽ini-pci]: https://img.shields.io/github/issues-pr-closed/rubocop-lts/rubocop-ruby2_2
|
78
|
+
[⛳️ini-g]: https://rubygems.org/gems/rubocop-ruby2_2
|
79
|
+
[⛳️ini-gh]: https://github.com/rubocop-lts/rubocop-ruby2_2
|
80
|
+
|
81
|
+
# 🦾 Rubocop::Ruby22
|
20
82
|
|
21
83
|
See the intro [blog post](https://dev.to/pboling/rubocop-ruby-matrix-gems-nj)!
|
22
84
|
|
23
|
-
This gem
|
85
|
+
This gem configures many gems for you:
|
86
|
+
|
87
|
+
- rubocop
|
88
|
+
- rubocop-gradual
|
89
|
+
- rubocop-md
|
90
|
+
- rubocop-rake
|
91
|
+
- rubocop-shopify
|
92
|
+
- rubocop-thread_safety
|
93
|
+
- standard
|
94
|
+
- standard-performance (incl. rubocop-performance)
|
95
|
+
- standard-custom
|
96
|
+
- standard-rubocop-lts (ruby version-specific rules)
|
97
|
+
|
98
|
+
And optionally, if you are using RSpec:
|
99
|
+
|
100
|
+
- rubocop-rspec
|
101
|
+
|
102
|
+
And optionally, if you are building a RubyGem:
|
103
|
+
|
104
|
+
- rubocop-packaging
|
105
|
+
|
106
|
+
And optionally, if you are building a Rails app:
|
107
|
+
|
108
|
+
- standard-rails (incl. rubocop-rails)
|
109
|
+
- betterlint
|
24
110
|
|
25
111
|
Awareness of `rubocop`'s lack of [SemVer][semver] adherence isn't evenly dispersed in the Ruby community.
|
26
112
|
|
27
|
-
The
|
28
|
-
for [not following SemVer](https://github.com/rubocop/rubocop/issues/4243)
|
29
|
-
|
30
|
-
|
113
|
+
The RuboCop team [has reasons](https://github.com/semver/semver/issues/317)
|
114
|
+
for [not following SemVer](https://github.com/rubocop/rubocop/issues/4243).
|
115
|
+
|
116
|
+
NOTE: They think they are following SemVer,
|
117
|
+
but their interpretation differs from mine, and seems to differ from the
|
118
|
+
[intent of SemVer's creator][major-versions-not-sacred].
|
31
119
|
|
32
120
|
<p align="left">
|
33
121
|
<a href="https://metaredux.com/posts/2022/04/21/rubocop-turns-10.html" target="_blank" rel="noopener">
|
@@ -36,133 +124,188 @@ what brought you here.
|
|
36
124
|
</p>
|
37
125
|
|
38
126
|
The purpose of this gem is to constrain the `rubocop` dependency of a project in
|
39
|
-
a [SemVer compliant]
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
[
|
75
|
-
|
76
|
-
[
|
77
|
-
[
|
78
|
-
[
|
79
|
-
[
|
80
|
-
[
|
81
|
-
|
127
|
+
a [SemVer compliant][semver]
|
128
|
+
(Semantic Versioning, [Major Versions are Not Sacred][major-versions-not-sacred])
|
129
|
+
way that aligns with its desired minimum compatible/supported Ruby version.
|
130
|
+
Secondary purpose is to provide default configurations for a bevy of RuboCop-related plugins.
|
131
|
+
|
132
|
+
## 💎 Ruby Version Support
|
133
|
+
|
134
|
+
This gem facilitates equivalent of adding a `~> ` version constrained `rubocop`(-ish +more) dependency,
|
135
|
+
thus minimizing the risk of a rubocop minor / patch upgrade breaking the build.
|
136
|
+
|
137
|
+
### What's that you say?
|
138
|
+
|
139
|
+
This gem will install a suite of tools that will **analyze & lint code** intended to support any version of Ruby >= 2.0.
|
140
|
+
|
141
|
+
This gem helps insulate projects from RuboCop churn by enshrining many conventions
|
142
|
+
that have been shown over years to reduce problems.
|
143
|
+
|
144
|
+
#### Background
|
145
|
+
|
146
|
+
Each [spring `rubocop` drops][rubocop-support-matrix] the ability to **install** and **run** `rubocop` on an EOL'd Ruby.
|
147
|
+
Eventually `rubocop` will drop the ability to **analyze code** intended to support an EOL'd Ruby,
|
148
|
+
as they already have for Ruby 1.9. RuboCop has never run properly on Ruby 1.8.
|
149
|
+
This gem, via [standard (Standard Ruby)][standardrb], allows RuboCop to analyze Ruby 2.2 code,
|
150
|
+
by turning off certain rules that only apply to later Rubies.
|
151
|
+
|
152
|
+
When the `rubocop` team makes _any_ of these changes they
|
153
|
+
[only bump the minor version][rubocop-versioning] of RuboCop,
|
154
|
+
in violation of SemVer ([they disagree][rubocop-release-policy]).
|
155
|
+
|
156
|
+
In other words, RuboCop intentionally does not bump the major version when they drop
|
157
|
+
_analysis_, _runtime_, or _installation_ support for a given version of Ruby.
|
158
|
+
|
159
|
+
This is a primary _raison d’être_ for this project.
|
160
|
+
To get a better understanding of how SemVer is intended to work read this article from the creator of SemVer:
|
161
|
+
|
162
|
+
- ["Major Version Numbers are Not Sacred"][major-versions-not-sacred]!
|
163
|
+
|
164
|
+
[rubocop-support-matrix]: https://docs.rubocop.org/rubocop/compatibility.html#support-matrix
|
165
|
+
[rubocop-versioning]: https://docs.rubocop.org/rubocop/versioning.html
|
166
|
+
[rubocop-release-policy]: https://docs.rubocop.org/rubocop/versioning.html#release-policy
|
167
|
+
[major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
|
168
|
+
[standardrb]: https://github.com/standardrb/standard
|
169
|
+
|
170
|
+
### 👪 A Gem Family
|
171
|
+
|
172
|
+
The `rubocop-lts` family of gems has a version supporting any version of Ruby you need.
|
173
|
+
They can be used as development dependencies for libraries or applications.
|
174
|
+
|
175
|
+
- [`rubocop-lts`][rlts]
|
176
|
+
- [`standard-rubocop-lts`][stdrlts]
|
177
|
+
- [`rubocop-ruby1_8`][rr18]
|
178
|
+
- [`rubocop-ruby1_9`][rr19]
|
179
|
+
- [`rubocop-ruby2_0`][rr20]
|
180
|
+
- [`rubocop-ruby2_1`][rr21]
|
181
|
+
- [`rubocop-ruby2_2`][rr22]
|
182
|
+
- [`rubocop-ruby2_3`][rr23]
|
183
|
+
- [`rubocop-ruby2_4`][rr24]
|
184
|
+
- [`rubocop-ruby2_5`][rr25]
|
185
|
+
- [`rubocop-ruby2_6`][rr26]
|
186
|
+
- [`rubocop-ruby2_7`][rr27]
|
187
|
+
- [`rubocop-ruby3_0`][rr30]
|
188
|
+
- [`rubocop-ruby3_1`][rr31]
|
189
|
+
- [`rubocop-ruby3_2`][rr32]
|
190
|
+
|
191
|
+
[rlts]: https://github.com/rubocop-lts/rubocop-lts#-how-to-untie-gorgons-knot
|
192
|
+
[stdrlts]: https://github.com/rubocop-lts/standard-rubocop-lts
|
193
|
+
[rr18]: https://gitlab.com/rubocop-lts/standard-rubocop-lts
|
194
|
+
[rr19]: https://gitlab.com/rubocop-lts/rubocop-ruby1_9
|
195
|
+
[rr20]: https://gitlab.com/rubocop-lts/rubocop-ruby2_0
|
196
|
+
[rr21]: https://gitlab.com/rubocop-lts/rubocop-ruby2_1
|
197
|
+
[rr22]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2
|
198
|
+
[rr23]: https://gitlab.com/rubocop-lts/rubocop-ruby2_3
|
199
|
+
[rr24]: https://gitlab.com/rubocop-lts/rubocop-ruby2_4
|
200
|
+
[rr25]: https://gitlab.com/rubocop-lts/rubocop-ruby2_5
|
201
|
+
[rr26]: https://gitlab.com/rubocop-lts/rubocop-ruby2_6
|
202
|
+
[rr27]: https://gitlab.com/rubocop-lts/rubocop-ruby2_7
|
203
|
+
[rr30]: https://gitlab.com/rubocop-lts/rubocop-ruby3_0
|
204
|
+
[rr31]: https://gitlab.com/rubocop-lts/rubocop-ruby3_1
|
205
|
+
[rr32]: https://gitlab.com/rubocop-lts/rubocop-ruby3_2
|
82
206
|
|
83
207
|
## 🗿 Stable
|
84
208
|
|
85
|
-
All releases of this gem are stable releases.
|
209
|
+
All releases of this gem are stable releases.
|
210
|
+
We do not release new versions for every release of `rubocop`,
|
211
|
+
as this gem is tied to [standard (Standard Ruby)][standardrb].
|
212
|
+
A typical release cycle for a gem in the `rubocop-lts` family is roughly every six months,
|
213
|
+
though eventually analysis support for an old version of Ruby will be dropped.
|
214
|
+
When that happens releases of the `rubocop-lts` gem for that version of Ruby will (mostly) cease.
|
86
215
|
|
87
216
|
## ✨ Installation
|
88
217
|
|
89
|
-
|
218
|
+
Install the gem and add to the application's Gemfile by executing:
|
90
219
|
|
91
|
-
$
|
220
|
+
$ bundle add rubocop-ruby2_2 -r false
|
92
221
|
|
93
|
-
|
222
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
94
223
|
|
95
|
-
|
96
|
-
|
224
|
+
$ gem install rubocop-ruby2_2
|
225
|
+
|
226
|
+
## 🔧 Basic Usage
|
227
|
+
|
228
|
+
If you are using Rails, building a Rubygem, or not using RSpec, see ["Advanced Usage"](#advanced-usage).
|
229
|
+
Otherwise, if you using this in plain Ruby _and_ RSpec, you can add to the top of your project's `.rubocop.yml` configuration file:
|
230
|
+
|
231
|
+
```yaml
|
232
|
+
inherit_gem:
|
233
|
+
rubocop-ruby2_2: rubocop.yml
|
97
234
|
```
|
98
235
|
|
99
|
-
|
236
|
+
Among _many_ other settings, this has the effect of declaring the following:
|
237
|
+
|
238
|
+
```yaml
|
239
|
+
AllCops:
|
240
|
+
NewCops: enable
|
241
|
+
```
|
100
242
|
|
101
|
-
|
243
|
+
Let's talk about these settings. (TODO: Document some of the other settings!)
|
102
244
|
|
103
|
-
|
245
|
+
### ⚙️ `NewCops: enable`
|
104
246
|
|
105
|
-
|
247
|
+
Upgrades to the latest RuboCop can include all kinds of changes, including removing support for the version of Ruby your project uses, or adding a cop that may not work with some of your syntax (e.g. [some use cases of 'module_function`](https://github.com/rubocop/rubocop/issues/5953#issuecomment-805921993)). Accepting new cops arriving in a new version of RuboCop can feel risky, especially when it doesn't follow SemVer.
|
106
248
|
|
107
|
-
|
249
|
+
But this gem shoehorns RuboCop into SemVer, under the watchful eye of [standard (Standard Ruby)][standardrb]... so `NewCops` is now safe(r)! If you use a dependency greening tool like GitHub's `dependabot`, or the excellent alternatives [depfu](https://depfu.com/), and [`renovate`](https://www.whitesourcesoftware.com/free-developer-tools/renovate/), then you can see the effect of a minor / major version bump in your CI Build!
|
108
250
|
|
109
|
-
|
251
|
+
## Advanced Usage
|
110
252
|
|
111
|
-
|
253
|
+
### Linting Ruby + RSpec
|
112
254
|
|
113
255
|
```yaml
|
114
256
|
inherit_gem:
|
115
|
-
rubocop-ruby2_2: rubocop.yml
|
257
|
+
rubocop-ruby2_2: rubocop-lts/ruby_rspec.yml
|
258
|
+
# Note: technically the above is the same as the "Basic Usage" below, so if specificity is not your jam:
|
259
|
+
# rubocop-ruby2_2: rubocop.yml
|
116
260
|
```
|
117
261
|
|
118
|
-
|
262
|
+
### Linting Ruby w/o RSpec
|
119
263
|
|
120
264
|
```yaml
|
121
|
-
|
122
|
-
|
123
|
-
TargetRubyVersion: 2.2
|
124
|
-
# The sibling gems for newer versions of Ruby support the NewCops directive as soon as RuboCop adds it.
|
125
|
-
# NewCops: enable
|
126
|
-
|
127
|
-
# Removed as of 0.80.0
|
128
|
-
# braces setting is for compatibility with Ruby 2.7+
|
129
|
-
# See:
|
130
|
-
# * https://github.com/rubocop/rubocop/issues/7641
|
131
|
-
# * https://github.com/rubocop/rubocop/pull/7643
|
132
|
-
Style/BracesAroundHashParameters:
|
133
|
-
Enabled: true
|
134
|
-
EnforcedStyle: context_dependent
|
265
|
+
inherit_gem:
|
266
|
+
rubocop-ruby2_2: rubocop-lts/ruby.yml
|
135
267
|
```
|
136
268
|
|
137
|
-
|
138
|
-
|
139
|
-
### TargetRubyVersion
|
269
|
+
### Linting Rails + RSpec
|
140
270
|
|
141
|
-
|
271
|
+
```yaml
|
272
|
+
inherit_gem:
|
273
|
+
rubocop-ruby2_2: rubocop-lts/rails_rspec.yml
|
274
|
+
```
|
142
275
|
|
143
|
-
|
276
|
+
#### Linting Rails w/o RSpec
|
144
277
|
|
145
|
-
|
278
|
+
```yaml
|
279
|
+
inherit_gem:
|
280
|
+
rubocop-ruby2_2: rubocop-lts/rails.yml
|
281
|
+
```
|
146
282
|
|
147
|
-
|
283
|
+
#### Linting a RubyGem + RSpec
|
148
284
|
|
149
|
-
|
285
|
+
```yaml
|
286
|
+
inherit_gem:
|
287
|
+
rubocop-ruby2_2: rubocop-lts/rubygem_rspec.yml
|
288
|
+
```
|
150
289
|
|
151
|
-
|
290
|
+
#### Linting a RubyGem w/o RSpec
|
152
291
|
|
153
|
-
|
292
|
+
```yaml
|
293
|
+
inherit_gem:
|
294
|
+
rubocop-ruby2_2: rubocop-lts/rubygem.yml
|
295
|
+
```
|
154
296
|
|
155
|
-
|
156
|
-
* https://github.com/rubocop/rubocop/issues/7641
|
157
|
-
* https://github.com/rubocop/rubocop/pull/7643
|
297
|
+
## 💻 Development
|
158
298
|
|
159
|
-
|
299
|
+
After checking out the repo, run `bin/setup` to install dependencies.
|
300
|
+
Then, run `rake spec` to run the tests w/ coverage,
|
301
|
+
or `bin/rake` to run tests w/ coverage, and linting.
|
302
|
+
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
160
303
|
|
161
|
-
|
304
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
162
305
|
|
163
|
-
|
306
|
+
### 🚀 Release Instructions
|
164
307
|
|
165
|
-
|
308
|
+
See [CONTRIBUTING.md][contributing].
|
166
309
|
|
167
310
|
## ⚡️ Contributing
|
168
311
|
|
@@ -177,37 +320,37 @@ Made with [contributors-img](https://contrib.rocks).
|
|
177
320
|
## 📄 License
|
178
321
|
|
179
322
|
The gem is available as open source under the terms of
|
180
|
-
the [MIT License][license] [![License: MIT]
|
181
|
-
See [LICENSE][license] for the official [Copyright Notice][copyright-notice-explainer].
|
323
|
+
the [MIT License][license] [![License: MIT][license-img]][license-ref].
|
324
|
+
See [LICENSE.txt][license] for the official [Copyright Notice][copyright-notice-explainer].
|
182
325
|
|
183
326
|
<details>
|
184
|
-
<summary>Project Logos (rubocop-
|
327
|
+
<summary>Project Logos (rubocop-ruby2_2)</summary>
|
185
328
|
|
186
329
|
See [docs/images/logo/README.txt][project-logos]
|
187
330
|
</details>
|
188
331
|
|
189
332
|
<details>
|
190
|
-
<summary>Organization Logo (rubocop-
|
333
|
+
<summary>Organization Logo (rubocop-lts)</summary>
|
191
334
|
|
192
335
|
Author: [Yusuf Evli][org-logo-author]
|
193
336
|
Source: [Unsplash][org-logo-source]
|
194
337
|
License: [Unsplash License][org-logo-license]
|
195
338
|
</details>
|
196
339
|
|
197
|
-
[project-logos]: https://github.com/rubocop-lts/rubocop-
|
340
|
+
[project-logos]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/docs/images/logo/README.txt
|
198
341
|
[org-logo-author]: https://unsplash.com/@yusufevli
|
199
342
|
[org-logo-source]: https://unsplash.com/photos/yaSLNLtKRIU
|
200
343
|
[org-logo-license]: https://unsplash.com/license
|
201
344
|
|
202
345
|
### © Copyright
|
203
346
|
|
204
|
-
* Copyright (c) 2022 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
|
205
|
-
|
206
|
-
[copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
347
|
+
* Copyright (c) 2022 - 2023 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
|
207
348
|
|
208
349
|
## 🤝 Code of Conduct
|
209
350
|
|
210
|
-
Everyone interacting in
|
351
|
+
Everyone interacting in this project's codebases, issue trackers, [chat rooms][🏘chat] and mailing lists is expected to follow the [code of conduct][🤝conduct].
|
352
|
+
|
353
|
+
[🤝conduct]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/blob/main/CODE_OF_CONDUCT.md
|
211
354
|
|
212
355
|
## 📌 Versioning
|
213
356
|
|
@@ -222,63 +365,36 @@ the [Pessimistic Version Constraint][pvc] with two digits of precision.
|
|
222
365
|
For example:
|
223
366
|
|
224
367
|
```ruby
|
225
|
-
spec.add_dependency "rubocop-ruby2_2", "~>
|
368
|
+
spec.add_dependency "rubocop-ruby2_2", "~> 2.0"
|
226
369
|
```
|
227
370
|
|
371
|
+
[aboutme]: https://about.me/peter.boling
|
372
|
+
[actions]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions
|
373
|
+
[angelme]: https://angel.co/peter-boling
|
374
|
+
[blogpage]: http://www.railsbling.com/tags/rubocop-ruby2_2/
|
375
|
+
[codecov_coverage]: https://codecov.io/gh/rubocop-lts/rubocop-ruby2_2
|
376
|
+
[code_triage]: https://www.codetriage.com/rubocop-lts/rubocop-ruby2_2
|
377
|
+
[🏘chat]: https://gitter.im/rubocop-lts/community
|
378
|
+
[climate_coverage]: https://codeclimate.com/github/rubocop-lts/rubocop-ruby2_2/test_coverage
|
379
|
+
[climate_maintainability]: https://codeclimate.com/github/rubocop-lts/rubocop-ruby2_2/maintainability
|
228
380
|
[copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
229
|
-
|
230
|
-
[gh_discussions]: https://github.com/rubocop-lts/rubocop-ruby2_2/discussions
|
231
|
-
|
232
381
|
[conduct]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CODE_OF_CONDUCT.md
|
233
|
-
|
234
382
|
[contributing]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CONTRIBUTING.md
|
235
|
-
|
236
|
-
[
|
237
|
-
|
238
|
-
[
|
239
|
-
|
383
|
+
[devto]: https://dev.to/galtzo
|
384
|
+
[documentation]: https://rubydoc.info/github/rubocop-lts/rubocop-ruby2_2/main
|
385
|
+
[followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
|
386
|
+
[gh_discussions]: https://github.com/rubocop-lts/rubocop-ruby2_2/discussions
|
387
|
+
[gh_sponsors]: https://github.com/sponsors/pboling
|
388
|
+
[issues]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
|
389
|
+
[liberapay_donate]: https://liberapay.com/pboling/donate
|
390
|
+
[license]: LICENSE.txt
|
240
391
|
[license-ref]: https://opensource.org/licenses/MIT
|
241
|
-
|
242
|
-
[
|
243
|
-
|
392
|
+
[license-img]: https://img.shields.io/badge/License-MIT-green.svg
|
393
|
+
[peterboling]: http://www.peterboling.com
|
244
394
|
[pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
245
|
-
|
246
395
|
[railsbling]: http://www.railsbling.com
|
247
|
-
|
248
|
-
[peterboling]: http://www.peterboling.com
|
249
|
-
|
250
|
-
[aboutme]: https://about.me/peter.boling
|
251
|
-
|
252
|
-
[angelme]: https://angel.co/peter-boling
|
253
|
-
|
254
|
-
[coderme]:http://coderwall.com/pboling
|
255
|
-
|
256
|
-
[followme-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
|
257
|
-
|
258
|
-
[tweetme]: http://twitter.com/galtzo
|
259
|
-
|
260
|
-
[politicme]: https://nationalprogressiveparty.org
|
261
|
-
|
262
|
-
[documentation]: https://rubydoc.info/github/rubocop-lts/rubocop-ruby2_2/main
|
263
|
-
|
264
|
-
[source]: https://github.com/rubocop-lts/rubocop-ruby2_2/
|
265
|
-
|
266
|
-
[actions]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions
|
267
|
-
|
268
|
-
[issues]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
|
269
|
-
|
270
|
-
[climate_maintainability]: https://codeclimate.com/github/rubocop-lts/rubocop-ruby2_2/maintainability
|
271
|
-
|
272
|
-
[code_triage]: https://www.codetriage.com/rubocop-lts/rubocop-ruby2_2
|
273
|
-
|
274
|
-
[blogpage]: http://www.railsbling.com/tags/rubocop-ruby2_2/
|
275
|
-
|
276
396
|
[rubygems]: https://rubygems.org/gems/rubocop-ruby2_2
|
277
|
-
|
278
|
-
[
|
279
|
-
|
280
|
-
[
|
281
|
-
|
282
|
-
[liberapay_donate]: https://liberapay.com/pboling/donate
|
283
|
-
|
284
|
-
[gh_sponsors]: https://github.com/sponsors/pboling
|
397
|
+
[security]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/SECURITY.md
|
398
|
+
[semver]: http://semver.org/
|
399
|
+
[source]: https://github.com/rubocop-lts/rubocop-ruby2_2/
|
400
|
+
[tweetme]: http://twitter.com/galtzo
|
data/SECURITY.md
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
## Supported Versions
|
4
4
|
|
5
|
-
| Version | Supported
|
6
|
-
|
7
|
-
|
|
5
|
+
| Version | Supported |
|
6
|
+
|---------|-----------|
|
7
|
+
| 2.x | ✅ |
|
8
|
+
| 1.x | ❌ |
|
8
9
|
|
9
10
|
## Reporting a Vulnerability
|
10
11
|
|
11
12
|
Peter Boling is the primary maintainer of this gem. Please find a way
|
12
13
|
to [contact him directly](https://railsbling.com/contact) to report the issue. Include as much relevant information as
|
13
|
-
possible.
|
14
|
+
possible.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Rubocop
|
2
|
+
module Ruby22
|
3
|
+
class Railtie < Rails::Railtie
|
4
|
+
railtie_name :rubocop_ruby2_2
|
5
|
+
|
6
|
+
if Rails.env.test? || Rails.env.development?
|
7
|
+
rake_tasks do
|
8
|
+
path = File.expand_path(__dir__)
|
9
|
+
Dir.glob("#{path}/rakelib/**/*.rake").each { |f| load f }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
begin
|
2
|
+
require "rubocop/gradual/rake_task"
|
3
|
+
|
4
|
+
RuboCop::Gradual::RakeTask.new(:rubocop_gradual)
|
5
|
+
desc "alias rubocop task to rubocop_gradual"
|
6
|
+
task rubocop: :rubocop_gradual
|
7
|
+
rescue LoadError
|
8
|
+
task :rubocop_gradual do
|
9
|
+
warn "NOTE: rubocop-gradual isn't installed, or is disabled for #{RUBY_VERSION} in the current environment"
|
10
|
+
end
|
11
|
+
end
|
data/lib/rubocop/ruby2_2.rb
CHANGED
@@ -1,9 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# external libs
|
4
|
+
require "version_gem"
|
5
|
+
|
6
|
+
# this gem
|
3
7
|
require_relative "ruby2_2/version"
|
8
|
+
# :nocov:
|
9
|
+
require_relative "ruby2_2/railtie" if defined?(Rails::Railtie)
|
10
|
+
# :nocov:
|
4
11
|
|
5
12
|
module Rubocop
|
6
13
|
# Namespace of this library
|
7
14
|
module Ruby22
|
15
|
+
module_function def install_tasks
|
16
|
+
load "rubocop/ruby2_2/tasks.rake"
|
17
|
+
end
|
8
18
|
end
|
9
19
|
end
|
20
|
+
|
21
|
+
Rubocop::Ruby22::Version.class_eval do
|
22
|
+
extend VersionGem::Basic
|
23
|
+
end
|