rubocop-ruby2_2 3.0.2 → 3.0.4

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.
data/README.md CHANGED
@@ -1,255 +1,124 @@
1
- <a href="https://rubocop-lts.gitlab.io/"><img alt="rubocop-lts Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/rubocop-lts/avatar-192px.svg" width="20%" align="right"/></a>
1
+ <a href="https://github.com/rubocop-lts"><img alt="rubocop-lts Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/rubocop-lts/avatar-128px.svg" width="14%" align="right"/></a>
2
2
 
3
3
  # 🦾 Rubocop::Ruby22
4
4
 
5
- 💡 See the intro [blog post](https://dev.to/pboling/rubocop-ruby-matrix-gems-nj)!
5
+ [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
6
+
7
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite].
6
8
 
7
9
  ---
8
10
 
9
- The RuboCop LTS family of gems is the distillation of more than 20 years
10
- of my own Ruby expertise and source code diving,
11
- built on the shoulders of the expertise of many others — `rubocop`, `standard`,
12
- `rubocop-gradual` and others are runtime dependencies — not reinventing any wheels here);
13
- organizing that expertise into per-Ruby-version sets of configurations.
14
- Yes, I typed those emdashes, and wrote this entire README myself without AI —
15
- `ctrl`-`shift`-`u`-`2014`.
11
+ `if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
16
12
 
17
- Although the situation has improved somewhat,
18
- it remains [_unsafe_ to upgrade RuboCop, or Standard][Why-Build-This],
19
- in a project that supports EOL Rubies.
13
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
20
14
 
21
- I hope it helps others avoid some of the challenges I've had with library maintenance,
22
- and supporting decade-old mission-critical applications.
15
+ <details markdown="1">
16
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
23
17
 
24
- Avoid bike-shedding, use `rubocop-lts` in every project, and
25
- let it manage your linting complexity!
18
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
26
19
 
27
- If the `rubocop-lts` stack of libraries has helped you, or your organization,
28
- please support my efforts by making a donation, or becoming a sponsor.
20
+ </details>
29
21
 
30
- [Why-Build-This]: https://rubocop-lts.gitlab.io/about/#why-build-this-
22
+ ## 🌻 Synopsis <a href="https://discord.gg/3qme4XHNKN"><img alt="Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="8%" align="right"/></a> <a href="https://ruby-toolbox.com"><img alt="ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5" src="https://logos.galtzo.com/assets/images/ruby-lang/avatar-128px.svg" width="8%" align="right"/></a>
23
+
24
+ ## 💡 Info you can shake a stick at
25
+
26
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
27
+ |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
28
+ | Works with JRuby | [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
29
+ | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]|
30
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
31
+ | Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
32
+ | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
33
+ | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
34
+ | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
35
+ | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
36
+ | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
37
+ | Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
38
+ | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
39
+
40
+ ### Compatibility
41
+
42
+ Compatible with MRI Ruby 3.2.0+, and concordant releases of JRuby, and TruffleRuby.
43
+ CI workflows and Appraisals are generated for MRI Ruby 3.2.0+.
44
+ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
45
+ may be higher than the gem's runtime compatibility floor when legacy Rubies are
46
+ not practical for the current toolchain.
47
+
48
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
49
+
50
+ The _amazing_ test matrix is powered by the kettle-dev stack.
51
+
52
+ <details markdown="1">
53
+ <summary>How kettle-dev manages complexity in tests</summary>
54
+
55
+ | Gem | Source | Role | Daily download rank |
56
+ |-----|--------|------|---------------------|
57
+ | [appraisal2](https://bestgems.org/gems/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Daily download rank for appraisal2](https://img.shields.io/gem/rd/appraisal2.svg?style=flat-square)](https://bestgems.org/gems/appraisal2) |
58
+ | [appraisal2-rubocop](https://bestgems.org/gems/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Daily download rank for appraisal2-rubocop](https://img.shields.io/gem/rd/appraisal2-rubocop.svg?style=flat-square)](https://bestgems.org/gems/appraisal2-rubocop) |
59
+ | [kettle-dev](https://bestgems.org/gems/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Daily download rank for kettle-dev](https://img.shields.io/gem/rd/kettle-dev.svg?style=flat-square)](https://bestgems.org/gems/kettle-dev) |
60
+ | [kettle-jem](https://bestgems.org/gems/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Daily download rank for kettle-jem](https://img.shields.io/gem/rd/kettle-jem.svg?style=flat-square)](https://bestgems.org/gems/kettle-jem) |
61
+ | [kettle-soup-cover](https://bestgems.org/gems/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Daily download rank for kettle-soup-cover](https://img.shields.io/gem/rd/kettle-soup-cover.svg?style=flat-square)](https://bestgems.org/gems/kettle-soup-cover) |
62
+ | [kettle-test](https://bestgems.org/gems/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Daily download rank for kettle-test](https://img.shields.io/gem/rd/kettle-test.svg?style=flat-square)](https://bestgems.org/gems/kettle-test) |
63
+ | [rubocop-lts](https://bestgems.org/gems/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Daily download rank for rubocop-lts](https://img.shields.io/gem/rd/rubocop-lts.svg?style=flat-square)](https://bestgems.org/gems/rubocop-lts) |
64
+ | [turbo_tests2](https://bestgems.org/gems/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Daily download rank for turbo_tests2](https://img.shields.io/gem/rd/turbo_tests2.svg?style=flat-square)](https://bestgems.org/gems/turbo_tests2) |
31
65
 
32
- <div id="badges">
66
+ </details>
33
67
 
34
- [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
35
- [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
68
+ ### Federated DVCS
36
69
 
37
- <span class="badge-buymeacoffee">
38
- <a href="https://ko-fi.com/O5O86SNP4" target='_blank' title="Donate to my FLOSS or refugee efforts at ko-fi.com"><img src="https://img.shields.io/badge/buy%20me%20coffee-donate-yellow.svg" alt="Buy me coffee donation button" /></a>
39
- </span>
40
- <span class="badge-patreon">
41
- <a href="https://patreon.com/galtzo" title="Donate to my FLOSS or refugee efforts using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a>
42
- </span>
70
+ <details markdown="1">
71
+ <summary>Find this repo on federated forges (Coming soon!)</summary>
43
72
 
44
- </div>
73
+ | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
74
+ |-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
75
+ | 🧪 [rubocop-lts/rubocop-ruby2_2 on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
76
+ | 🧊 [rubocop-lts/rubocop-ruby2_2 on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
77
+ | 🐙 [rubocop-lts/rubocop-ruby2_2 on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
78
+ | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
45
79
 
46
- [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
47
- [⛳liberapay]: https://liberapay.com/pboling/donate
48
- [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
49
- [🖇sponsor]: https://github.com/sponsors/pboling
80
+ </details>
50
81
 
51
- ---
82
+ [gh-discussions]: https://github.com/rubocop-lts/rubocop-ruby2_2/discussions
83
+
84
+ ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/rubocop-ruby2_2)](https://tidelift.com/subscription/pkg/rubygems-rubocop-ruby2_2?utm_source=rubygems-rubocop-ruby2_2&utm_medium=referral&utm_campaign=readme)
85
+
86
+ Available as part of the Tidelift Subscription.
87
+
88
+ <details markdown="1">
89
+ <summary>Need enterprise-level guarantees?</summary>
52
90
 
53
- 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.
54
-
55
- | Gem Name | Version | Downloads | CI | Activity |
56
- |-------------------------------|-------------------------------------|----------------------------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
57
- | [`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] |
58
- | [`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] |
59
-
60
- <!-- columnar badge #s for Project Health table:
61
- ⛳️
62
- 🖇
63
- 🏘
64
- 🚎
65
- 🖐
66
- 🧮
67
- 📗
68
- 🚀
69
- 💄
70
- 👽
71
- -->
72
-
73
- [⛳️lts-vi]: http://img.shields.io/gem/v/rubocop-lts.svg
74
- [🖇️lts-dti]: https://img.shields.io/gem/dt/rubocop-lts.svg
75
- [🏘️lts-rti]: https://img.shields.io/gem/rt/rubocop-lts.svg
76
- [🚎lts-cwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml
77
- [🚎lts-cwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml/badge.svg
78
- [🖐lts-hwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml
79
- [🖐lts-hwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml/badge.svg
80
- [🧮lts-lwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml
81
- [🧮lts-lwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml/badge.svg
82
- [📗lts-io]: https://github.com/rubocop-lts/rubocop-lts/issues
83
- [📗lts-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-lts
84
- [🚀lts-ic]: https://github.com/rubocop-lts/rubocop-lts/issues?q=is%3Aissue+is%3Aclosed
85
- [🚀lts-ici]: https://img.shields.io/github/issues-closed-raw/rubocop-lts/rubocop-lts
86
- [💄lts-po]: https://github.com/rubocop-lts/rubocop-lts/pulls
87
- [💄lts-poi]: https://img.shields.io/github/issues-pr/rubocop-lts/rubocop-lts
88
- [👽lts-pc]: https://github.com/rubocop-lts/rubocop-lts/pulls?q=is%3Apr+is%3Aclosed
89
- [👽lts-pci]: https://img.shields.io/github/issues-pr-closed/rubocop-lts/rubocop-lts
90
- [⛳️lts-g]: https://rubygems.org/gems/rubocop-lts
91
- [⛳️lts-gh]: https://github.com/rubocop-lts/rubocop-lts
92
-
93
- [⛳️ini-vi]: http://img.shields.io/gem/v/rubocop-ruby2_2.svg
94
- [🖇️ini-dti]: https://img.shields.io/gem/dt/rubocop-ruby2_2.svg
95
- [🏘️ini-rti]: https://img.shields.io/gem/rt/rubocop-ruby2_2.svg
96
- [🚎ini-cwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml
97
- [🚎ini-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml/badge.svg
98
- [🖐ini-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml
99
- [🖐ini-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml/badge.svg
100
- [🧮ini-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/legacy.yml
101
- [🧮ini-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/legacy.yml/badge.svg
102
- [📗ini-io]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
103
- [📗ini-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_2
104
- [🚀ini-ic]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues?q=is%3Aissue+is%3Aclosed
105
- [🚀ini-ici]: https://img.shields.io/github/issues-closed-raw/rubocop-lts/rubocop-ruby2_2
106
- [💄ini-po]: https://github.com/rubocop-lts/rubocop-ruby2_2/pulls
107
- [💄ini-poi]: https://img.shields.io/github/issues-pr/rubocop-lts/rubocop-ruby2_2
108
- [👽ini-pc]: https://github.com/rubocop-lts/rubocop-ruby2_2/pulls?q=is%3Apr+is%3Aclosed
109
- [👽ini-pci]: https://img.shields.io/github/issues-pr-closed/rubocop-lts/rubocop-ruby2_2
110
- [⛳️ini-g]: https://rubygems.org/gems/rubocop-ruby2_2
111
- [⛳️ini-gh]: https://github.com/rubocop-lts/rubocop-ruby2_2
112
-
113
- This gem configures many gems for you,
114
- and configures all of them for a specific version of Ruby:
115
-
116
- - rubocop
117
- - rubocop-gradual
118
- - rubocop-md
119
- - rubocop-rake
120
- - rubocop-thread_safety
121
- - standard
122
- - standard-performance (incl. rubocop-performance)
123
- - standard-custom
124
- - standard-rubocop-lts (ruby version-specific rules)
125
-
126
- And optionally, if you are using RSpec:
127
-
128
- - rubocop-lts-rspec (which loads `rubocop-rspec`, `rubocop-rspec-extra`, `rubocop-env`, and `rubocop-factory_bot`)
129
-
130
- And optionally, if you are building a RubyGem:
131
-
132
- - rubocop-packaging
133
-
134
- And optionally, if you are building a Rails app:
135
-
136
- - standard-rails (incl. rubocop-rails)
137
- - betterlint
138
-
139
- Awareness of `rubocop`'s lack of [SemVer][semver] adherence isn't evenly dispersed in the Ruby community.
140
-
141
- The RuboCop team [has reasons](https://github.com/semver/semver/issues/317)
142
- for [not following SemVer](https://github.com/rubocop/rubocop/issues/4243).
143
-
144
- NOTE: They think they are following SemVer,
145
- but their interpretation differs from mine, and seems to differ from the
146
- [intent of SemVer's creator][major-versions-not-sacred].
147
-
148
- <p align="left">
149
- <a href="https://metaredux.com/posts/2022/04/21/rubocop-turns-10.html" target="_blank" rel="noopener">
150
- <img width="360px" src="https://github.com/rubocop-lts/rubocop-ruby2_2/raw/main/docs/images/rubocop-not-semver.png?raw=true" alt="Explanation of non-SemVer compliance, @bbatsov">
151
- </a>
152
- </p>
153
-
154
- The purpose of this gem is to constrain the `rubocop` dependency of a project in
155
- a [SemVer compliant][semver]
156
- (Semantic Versioning, [Major Versions are Not Sacred][major-versions-not-sacred])
157
- way that aligns with its desired minimum compatible/supported Ruby version.
158
- Secondary purpose is to provide default configurations for a bevy of RuboCop-related plugins.
159
-
160
- ## 💎 Ruby Version Support
161
-
162
- This gem facilitates equivalent of adding a `~> ` version constrained `rubocop`(-ish +more) dependency,
163
- thus minimizing the risk of a rubocop minor / patch upgrade breaking the build.
164
-
165
- ### What's that you say?
166
-
167
- This gem will install a suite of tools that will **analyze & lint code** intended to support any version of Ruby >= 2.0.
168
-
169
- This gem helps insulate projects from RuboCop churn by enshrining many conventions
170
- that have been shown over years to reduce problems.
171
-
172
- #### Background
173
-
174
- Each [spring `rubocop` drops][rubocop-support-matrix] the ability to **install** and **run** `rubocop` on an EOL'd Ruby.
175
- Eventually `rubocop` will drop the ability to **analyze code** intended to support an EOL'd Ruby,
176
- as they already have for Ruby 1.9. RuboCop has never run properly on Ruby 1.8.
177
- This gem, via [standard (Standard Ruby)][standardrb], allows RuboCop to analyze Ruby 2.2 code,
178
- by turning off certain rules that only apply to later Rubies.
179
-
180
- When the `rubocop` team makes _any_ of these changes they
181
- [only bump the minor version][rubocop-versioning] of RuboCop,
182
- in violation of SemVer ([they disagree][rubocop-release-policy]).
183
-
184
- In other words, RuboCop intentionally does not bump the major version when they drop
185
- _analysis_, _runtime_, or _installation_ support for a given version of Ruby.
186
-
187
- This is a primary _raison d’être_ for this project.
188
- To get a better understanding of how SemVer is intended to work read this article from the creator of SemVer:
189
-
190
- - ["Major Version Numbers are Not Sacred"][major-versions-not-sacred]!
191
-
192
- [rubocop-support-matrix]: https://docs.rubocop.org/rubocop/compatibility.html#support-matrix
193
- [rubocop-versioning]: https://docs.rubocop.org/rubocop/versioning.html
194
- [rubocop-release-policy]: https://docs.rubocop.org/rubocop/versioning.html#release-policy
195
- [major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
196
- [standardrb]: https://github.com/standardrb/standard
197
-
198
- ### 👪 A Gem Family
199
-
200
- The `rubocop-lts` family of gems has a version supporting any version of Ruby you need.
201
- They can be used as development dependencies for libraries or applications.
202
-
203
- - [`rubocop-lts`][rlts]
204
- - [`standard-rubocop-lts`][stdrlts]
205
- - [`rubocop-ruby1_8`][rr18]
206
- - [`rubocop-ruby1_9`][rr19]
207
- - [`rubocop-ruby2_0`][rr20]
208
- - [`rubocop-ruby2_1`][rr21]
209
- - [`rubocop-ruby2_2`][rr22]
210
- - [`rubocop-ruby2_3`][rr23]
211
- - [`rubocop-ruby2_4`][rr24]
212
- - [`rubocop-ruby2_5`][rr25]
213
- - [`rubocop-ruby2_6`][rr26]
214
- - [`rubocop-ruby2_7`][rr27]
215
- - [`rubocop-ruby3_0`][rr30]
216
- - [`rubocop-ruby3_1`][rr31]
217
- - [`rubocop-ruby3_2`][rr32]
218
-
219
- [rlts]: https://github.com/rubocop-lts/rubocop-lts#-how-to-untie-gorgons-knot
220
- [stdrlts]: https://github.com/rubocop-lts/standard-rubocop-lts
221
- [rr18]: https://gitlab.com/rubocop-lts/standard-rubocop-lts
222
- [rr19]: https://gitlab.com/rubocop-lts/rubocop-ruby1_9
223
- [rr20]: https://gitlab.com/rubocop-lts/rubocop-ruby2_0
224
- [rr21]: https://gitlab.com/rubocop-lts/rubocop-ruby2_1
225
- [rr22]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2
226
- [rr23]: https://gitlab.com/rubocop-lts/rubocop-ruby2_3
227
- [rr24]: https://gitlab.com/rubocop-lts/rubocop-ruby2_4
228
- [rr25]: https://gitlab.com/rubocop-lts/rubocop-ruby2_5
229
- [rr26]: https://gitlab.com/rubocop-lts/rubocop-ruby2_6
230
- [rr27]: https://gitlab.com/rubocop-lts/rubocop-ruby2_7
231
- [rr30]: https://gitlab.com/rubocop-lts/rubocop-ruby3_0
232
- [rr31]: https://gitlab.com/rubocop-lts/rubocop-ruby3_1
233
- [rr32]: https://gitlab.com/rubocop-lts/rubocop-ruby3_2
234
-
235
- ## 🗿 Stable
236
-
237
- All releases of this gem are stable releases.
238
- We do not release new versions for every release of `rubocop`,
239
- as this gem is tied to [standard (Standard Ruby)][standardrb].
240
- A typical release cycle for a gem in the `rubocop-lts` family is roughly every six months,
241
- though eventually analysis support for an old version of Ruby will be dropped.
242
- When that happens releases of the `rubocop-lts` gem for that version of Ruby will (mostly) cease.
91
+ The maintainers of this and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.
92
+
93
+ [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]
94
+
95
+ - 💡Subscribe for support guarantees covering _all_ your FLOSS dependencies
96
+ - 💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]
97
+ - 💡Tidelift pays maintainers to maintain the software you depend on!<br/>📊`@`Pointy Haired Boss: An [enterprise support][🏙️entsup-tidelift] subscription is "[never gonna let you down][🧮kloc]", and *supports* open source maintainers
98
+
99
+ Alternatively:
100
+
101
+ - [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
102
+ - [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork]
103
+ - [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor]
104
+
105
+ </details>
243
106
 
244
107
  ## ✨ Installation
245
108
 
246
109
  Install the gem and add to the application's Gemfile by executing:
247
110
 
248
- $ bundle add rubocop-ruby2_2 -r false
111
+ ```console
112
+ bundle add rubocop-ruby2_2
113
+ ```
249
114
 
250
115
  If bundler is not being used to manage dependencies, install the gem by executing:
251
116
 
252
- $ gem install rubocop-ruby2_2
117
+ ```console
118
+ gem install rubocop-ruby2_2
119
+ ```
120
+
121
+ ## ⚙️ Configuration
253
122
 
254
123
  ## 🔧 Basic Usage
255
124
 
@@ -278,153 +147,377 @@ Upgrades to the latest RuboCop can include all kinds of changes, including remov
278
147
 
279
148
  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!
280
149
 
281
- ## Advanced Usage
150
+ ## 🦷 FLOSS Funding
282
151
 
283
- ### Linting Ruby + RSpec
152
+ While rubocop-lts tools are free software and will always be, the project would benefit immensely from some funding.
153
+ Raising a monthly budget of... "dollars" would make the project more sustainable.
284
154
 
285
- ```yaml
286
- inherit_gem:
287
- rubocop-ruby2_2: rubocop-lts/ruby_rspec.yml
288
- # Note: technically the above is the same as the "Basic Usage" below, so if specificity is not your jam:
289
- # rubocop-ruby2_2: rubocop.yml
290
- ```
155
+ We welcome both individual and corporate sponsors! We also offer a
156
+ wide array of funding channels to account for your preferences.
157
+ Currently, [Open Collective][🖇osc] is our preferred funding platform.
291
158
 
292
- ### Linting Ruby w/o RSpec
159
+ **If you're working in a company that's making significant use of rubocop-lts tools we'd
160
+ appreciate it if you suggest to your company to become a rubocop-lts sponsor.**
293
161
 
294
- ```yaml
295
- inherit_gem:
296
- rubocop-ruby2_2: rubocop-lts/ruby.yml
297
- ```
162
+ You can support the development of rubocop-lts tools via
163
+ [GitHub Sponsors][🖇sponsor],
164
+ [Liberapay][⛳liberapay],
165
+ [PayPal][🖇paypal],
166
+ [Open Collective][🖇osc]
167
+ and [Tidelift][🏙️entsup-tidelift].
298
168
 
299
- ### Linting Rails + RSpec
169
+ | 📍 NOTE |
170
+ |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
171
+ | If doing a sponsorship in the form of donation is problematic for your company <br/> from an accounting standpoint, we'd recommend the use of Tidelift, <br/> where you can get a support-like subscription instead. |
300
172
 
301
- ```yaml
302
- inherit_gem:
303
- rubocop-ruby2_2: rubocop-lts/rails_rspec.yml
304
- ```
173
+ ### Open Collective for Individuals
305
174
 
306
- #### Linting Rails w/o RSpec
175
+ Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/rubocop-lts#backer)]
307
176
 
308
- ```yaml
309
- inherit_gem:
310
- rubocop-ruby2_2: rubocop-lts/rails.yml
311
- ```
177
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
312
178
 
313
- #### Linting a RubyGem + RSpec
179
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
180
+ No backers yet. Be the first!
181
+ <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
314
182
 
315
- ```yaml
316
- inherit_gem:
317
- rubocop-ruby2_2: rubocop-lts/rubygem_rspec.yml
318
- ```
183
+ ### Open Collective for Organizations
319
184
 
320
- #### Linting a RubyGem w/o RSpec
185
+ Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/rubocop-lts#sponsor)]
321
186
 
322
- ```yaml
323
- inherit_gem:
324
- rubocop-ruby2_2: rubocop-lts/rubygem.yml
325
- ```
187
+ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
188
+
189
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
190
+ No sponsors yet. Be the first!
191
+ <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
192
+
193
+ [kettle-readme-backers]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/bin/kettle-readme-backers
194
+
195
+ ### Another way to support open-source
196
+
197
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
198
+
199
+ If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
326
200
 
327
- ## 💻 Development
201
+ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed to empower open-source developers like myself to get paid for the work we do, in a sustainable way. Please give it a look.
328
202
 
329
- After checking out the repo, run `bin/setup` to install dependencies.
330
- Then, run `rake spec` to run the tests w/ coverage,
331
- or `bin/rake` to run tests w/ coverage, and linting.
332
- You can also run `bin/console` for an interactive prompt that will allow you to experiment.
203
+ **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
333
204
 
334
- To install this gem onto your local machine, run `bundle exec rake install`.
205
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
206
+
207
+ ## 🔐 Security
208
+
209
+ See [SECURITY.md][🔐security].
210
+
211
+ ## 🤝 Contributing
212
+
213
+ If you need some ideas of where to help, you could work on adding more code coverage,
214
+ or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
215
+ or use the gem and think about how it could be better.
216
+
217
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
218
+
219
+ See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
335
220
 
336
221
  ### 🚀 Release Instructions
337
222
 
338
- See [CONTRIBUTING.md][contributing].
223
+ See [CONTRIBUTING.md][🤝contributing].
339
224
 
340
- ## ⚡️ Contributing
225
+ ### Code Coverage
341
226
 
342
- See [CONTRIBUTING.md][contributing]
227
+ <details markdown="1">
228
+ <summary>Coverage service badges</summary>
229
+
230
+ [![Coverage Graph][🏀codecov-g]][🏀codecov]
231
+
232
+ [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
233
+
234
+ [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
235
+
236
+ </details>
237
+
238
+ ### 🪇 Code of Conduct
239
+
240
+ Everyone interacting with this project's codebases, issue trackers,
241
+ chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct].
343
242
 
344
243
  ## 🌈 Contributors
345
244
 
346
- [![Contributors](https://contrib.rocks/image?repo=rubocop-lts/rubocop-ruby2_2)]("https://github.com/rubocop-lts/rubocop-ruby2_2/graphs/contributors")
245
+ [![Contributors][🖐contributors-img]][🖐contributors]
347
246
 
348
- Made with [contributors-img](https://contrib.rocks).
247
+ Made with [contributors-img][🖐contrib-rocks].
349
248
 
350
- ## 📄 License
249
+ Also see GitLab Contributors: [https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/graphs/main][🚎contributors-gl]
351
250
 
352
- The gem is available as open source under the terms of
353
- the [MIT License][license] [![License: MIT][license-img]][license-ref].
354
- See [LICENSE.txt][license] for the official [Copyright Notice][copyright-notice-explainer].
251
+ <details markdown="1">
252
+ <summary>⭐️ Star History</summary>
355
253
 
356
- <details>
357
- <summary>Project Logos (rubocop-ruby2_2)</summary>
254
+ <a href="https://star-history.com/rubocop-lts/rubocop-ruby2_2&Date">
255
+ <picture>
256
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=rubocop-lts/rubocop-ruby2_2&type=Date&theme=dark" />
257
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=rubocop-lts/rubocop-ruby2_2&type=Date" />
258
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=rubocop-lts/rubocop-ruby2_2&type=Date" />
259
+ </picture>
260
+ </a>
358
261
 
359
- See [docs/images/logo/README.txt][project-logos]
360
262
  </details>
361
263
 
362
- <details>
363
- <summary>Organization Logo (rubocop-lts)</summary>
264
+ ## 📌 Versioning
265
+
266
+ This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
267
+ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
268
+
269
+ For example:
270
+
271
+ ```ruby
272
+ spec.add_dependency("rubocop-ruby2_2", "~> 3.0")
273
+ ```
274
+
275
+ <details markdown="1">
276
+ <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
277
+
278
+ Dropping support for a platform can be a breaking change for affected users.
279
+ If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
280
+
281
+ To get a better understanding of how SemVer is intended to work over a project's lifetime,
282
+ read this article from the creator of SemVer:
283
+
284
+ - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
364
285
 
365
- Author: [Yusuf Evli][org-logo-author]
366
- Source: [Unsplash][org-logo-source]
367
- License: [Unsplash License][org-logo-license]
368
286
  </details>
369
287
 
370
- [project-logos]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/docs/images/logo/README.txt
371
- [org-logo-author]: https://unsplash.com/@yusufevli
372
- [org-logo-source]: https://unsplash.com/photos/yaSLNLtKRIU
373
- [org-logo-license]: https://unsplash.com/license
288
+ See [CHANGELOG.md][📌changelog] for a list of releases.
289
+
290
+ ## 📄 License
291
+
292
+ The gem is available as open source under the terms of
293
+ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref].
374
294
 
375
295
  ### © Copyright
376
296
 
377
- * Copyright (c) 2022 - 2023 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
297
+ See [LICENSE.md][📄license] for the official copyright notice.
378
298
 
379
- ## 🤝 Code of Conduct
299
+ <details markdown="1">
300
+ <summary>Copyright holders</summary>
380
301
 
381
- Everyone interacting in this project's codebases, issue trackers, [chat rooms][🏘chat] and mailing lists is expected to follow the [code of conduct][🤝conduct].
302
+ - Copyright (c) 2022-2023, 2025-2026 Peter H. Boling
303
+ - Copyright (c) 2025 Annibelle Boling
382
304
 
383
- [🤝conduct]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/blob/main/CODE_OF_CONDUCT.md
305
+ </details>
384
306
 
385
- ## 📌 Versioning
307
+ ## 🤑 A request for help
386
308
 
387
- This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations of this scheme should be reported as
388
- bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be
389
- immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new
390
- major versions.
309
+ Maintainers have teeth and need to pay their dentists.
310
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
311
+ I began spending most of my time building open source tools.
312
+ I'm hoping to be able to pay for my kids' health insurance this month,
313
+ so if you value the work I am doing, I need your support.
314
+ Please consider sponsoring me or the project.
391
315
 
392
- As a result of this policy, you can (and should) specify a dependency on this gem using
393
- the [Pessimistic Version Constraint][pvc] with two digits of precision.
316
+ To join the community or get help 👇️ Join the Discord.
394
317
 
395
- For example:
318
+ [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
396
319
 
397
- ```ruby
398
- spec.add_dependency("rubocop-ruby2_2", "~> 2.0")
399
- ```
320
+ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
321
+
322
+ [![Sponsor rubocop-lts/rubocop-ruby2_2 on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
323
+
324
+ ### Please give the project a star ⭐ ♥.
400
325
 
401
- [aboutme]: https://about.me/peter.boling
402
- [actions]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions
403
- [angelme]: https://angel.co/peter-boling
404
- [blogpage]: http://www.railsbling.com/tags/rubocop-ruby2_2/
405
- [codecov_coverage]: https://codecov.io/gh/rubocop-lts/rubocop-ruby2_2
406
- [code_triage]: https://www.codetriage.com/rubocop-lts/rubocop-ruby2_2
407
- [🏘chat]: https://gitter.im/rubocop-lts/community
408
- [climate_coverage]: https://codeclimate.com/github/rubocop-lts/rubocop-ruby2_2/test_coverage
409
- [climate_maintainability]: https://codeclimate.com/github/rubocop-lts/rubocop-ruby2_2/maintainability
410
- [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
411
- [conduct]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CODE_OF_CONDUCT.md
412
- [contributing]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CONTRIBUTING.md
413
- [devto]: https://dev.to/galtzo
414
- [documentation]: https://rubydoc.info/github/rubocop-lts/rubocop-ruby2_2/main
415
- [followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
416
- [gh_discussions]: https://github.com/rubocop-lts/rubocop-ruby2_2/discussions
417
- [gh_sponsors]: https://github.com/sponsors/pboling
418
- [issues]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
419
- [liberapay_donate]: https://liberapay.com/pboling/donate
420
- [license]: LICENSE.txt
421
- [license-ref]: https://opensource.org/licenses/MIT
422
- [license-img]: https://img.shields.io/badge/License-MIT-green.svg
423
- [peterboling]: http://www.peterboling.com
424
- [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
425
- [railsbling]: http://www.railsbling.com
426
- [rubygems]: https://rubygems.org/gems/rubocop-ruby2_2
427
- [security]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/SECURITY.md
428
- [semver]: http://semver.org/
429
- [source]: https://github.com/rubocop-lts/rubocop-ruby2_2/
430
- [tweetme]: http://twitter.com/galtzo
326
+ Many parts of this project are actively managed by a [kettle-jem](https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem) smart template utilizing [StructuredMerge.org](https://structuredmerge.org) merge contracts.
327
+
328
+ Thanks for RTFM. ☺️
329
+
330
+ [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
331
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
332
+ [⛳liberapay]: https://liberapay.com/pboling/donate
333
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/rubocop-lts
334
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/rubocop-lts
335
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/rubocop-lts
336
+ [🖇osc-backers]: https://opencollective.com/rubocop-lts#backer
337
+ [🖇osc-backers-i]: https://opencollective.com/rubocop-lts/backers/badge.svg?style=flat
338
+ [🖇osc-sponsors]: https://opencollective.com/rubocop-lts#sponsor
339
+ [🖇osc-sponsors-i]: https://opencollective.com/rubocop-lts/sponsors/badge.svg?style=flat
340
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/rubocop-lts?style=for-the-badge
341
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/rubocop-lts?style=for-the-badge
342
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/rubocop-lts?style=for-the-badge
343
+ [🖇osc]: https://opencollective.com/rubocop-lts
344
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
345
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
346
+ [🖇sponsor]: https://github.com/sponsors/pboling
347
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
348
+ [🖇kofi]: https://ko-fi.com/pboling
349
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
350
+ [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
351
+ [🖇buyme]: https://www.buymeacoffee.com/pboling
352
+ [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
353
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
354
+ [🖇paypal]: https://www.paypal.com/paypalme/peterboling
355
+ [🖇floss-funding.dev]: https://floss-funding.dev
356
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
357
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
358
+ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
359
+ [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
360
+ [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
361
+
362
+ [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
363
+ [⛳️gem-namespace]: https://github.com/rubocop-lts/rubocop-ruby2_2
364
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-Rubocop::Ruby22-3C2D2D.svg?style=square&logo=ruby&logoColor=white
365
+ [⛳️gem-name]: https://bestgems.org/gems/rubocop-ruby2_2
366
+ [⛳️name-img]: https://img.shields.io/badge/name-rubocop--ruby2__2-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
367
+ [⛳️tag-img]: https://img.shields.io/github/tag/rubocop-lts/rubocop-ruby2_2.svg
368
+ [⛳️tag]: https://github.com/rubocop-lts/rubocop-ruby2_2/releases
369
+ [🚂maint-blog]: http://www.railsbling.com/tags/rubocop-ruby2_2
370
+ [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
371
+ [🚂maint-contact]: http://www.railsbling.com/contact
372
+ [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
373
+ [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
374
+ [💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
375
+ [💖✌️wellfound]: https://wellfound.com/u/peter-boling
376
+ [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
377
+ [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
378
+ [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
379
+ [💖🐘ruby-mast]: https://ruby.social/@galtzo
380
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
381
+ [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
382
+ [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
383
+ [💖🌳linktree]: https://linktr.ee/galtzo
384
+ [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
385
+ [💖💁🏼‍♂️devto]: https://dev.to/galtzo
386
+ [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
387
+ [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
388
+ [💖💁🏼‍♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
389
+ [💖🧊berg]: https://codeberg.org/pboling
390
+ [💖🐙hub]: https://github.org/pboling
391
+ [💖🛖hut]: https://sr.ht/~galtzo/
392
+ [💖🧪lab]: https://gitlab.com/pboling
393
+ [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
394
+ [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
395
+ [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
396
+ [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
397
+ [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-rubocop-ruby2_2?utm_source=rubygems-rubocop-ruby2_2&utm_medium=referral&utm_campaign=readme
398
+ [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
399
+ [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
400
+ [💁🏼‍♂️peterboling]: http://www.peterboling.com
401
+ [🚂railsbling]: http://www.railsbling.com
402
+ [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
403
+ [📜src-gl]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2
404
+ [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
405
+ [📜src-cb]: https://codeberg.org/rubocop-lts/rubocop-ruby2_2
406
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
407
+ [📜src-gh]: https://github.com/rubocop-lts/rubocop-ruby2_2
408
+ [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
409
+ [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
410
+ [📜gl-wiki]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/wikis/home
411
+ [📜gh-wiki]: https://github.com/rubocop-lts/rubocop-ruby2_2/wiki
412
+ [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
413
+ [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
414
+ [👽dl-rank]: https://bestgems.org/gems/rubocop-ruby2_2
415
+ [👽dl-ranki]: https://img.shields.io/gem/rd/rubocop-ruby2_2.svg
416
+ [👽version]: https://bestgems.org/gems/rubocop-ruby2_2
417
+ [👽versioni]: https://img.shields.io/gem/v/rubocop-ruby2_2.svg
418
+ [🏀qlty-mnt]: https://qlty.sh/gh/rubocop-lts/projects/rubocop-ruby2_2
419
+ [🏀qlty-mnti]: https://qlty.sh/gh/rubocop-lts/projects/rubocop-ruby2_2/maintainability.svg
420
+ [🏀qlty-cov]: https://qlty.sh/gh/rubocop-lts/projects/rubocop-ruby2_2/metrics/code?sort=coverageRating
421
+ [🏀qlty-covi]: https://qlty.sh/gh/rubocop-lts/projects/rubocop-ruby2_2/coverage.svg
422
+ [🏀codecov]: https://codecov.io/gh/rubocop-lts/rubocop-ruby2_2
423
+ [🏀codecovi]: https://codecov.io/gh/rubocop-lts/rubocop-ruby2_2/graph/badge.svg
424
+ [🏀coveralls]: https://coveralls.io/github/rubocop-lts/rubocop-ruby2_2?branch=main
425
+ [🏀coveralls-img]: https://coveralls.io/repos/github/rubocop-lts/rubocop-ruby2_2/badge.svg?branch=main
426
+ [🚎ruby-3.2-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/ruby-3.2.yml
427
+ [🚎ruby-3.3-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/ruby-3.3.yml
428
+ [🚎ruby-3.4-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/ruby-3.4.yml
429
+ [🚎jruby-10.0-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/jruby-10.0.yml
430
+ [🚎truby-24.2-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/truffleruby-24.2.yml
431
+ [🚎truby-25.0-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/truffleruby-25.0.yml
432
+ [🚎truby-33.0-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/truffleruby-33.0.yml
433
+ [🚎2-cov-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/coverage.yml
434
+ [🚎2-cov-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/coverage.yml/badge.svg
435
+ [🚎3-hd-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml
436
+ [🚎3-hd-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml/badge.svg
437
+ [🚎5-st-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/style.yml
438
+ [🚎5-st-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/style.yml/badge.svg
439
+ [🚎9-t-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/truffle.yml
440
+ [🚎9-t-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/truffle.yml/badge.svg
441
+ [🚎10-j-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/jruby.yml
442
+ [🚎10-j-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/jruby.yml/badge.svg
443
+ [🚎11-c-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml
444
+ [🚎11-c-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml/badge.svg
445
+ [🚎12-crh-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/dep-heads.yml
446
+ [🚎12-crh-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/dep-heads.yml/badge.svg
447
+ [🚎13-🔒️-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/locked_deps.yml
448
+ [🚎13-🔒️-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/locked_deps.yml/badge.svg
449
+ [🚎14-🔓️-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/unlocked_deps.yml
450
+ [🚎14-🔓️-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/unlocked_deps.yml/badge.svg
451
+ [🚎15-🪪-wf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/license-eye.yml
452
+ [🚎15-🪪-wfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/license-eye.yml/badge.svg
453
+ [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
454
+ [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
455
+ [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
456
+ [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
457
+ [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
458
+ [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
459
+ [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
460
+ [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
461
+ [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
462
+ [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
463
+ [💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
464
+ [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
465
+ [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
466
+ [🤝gh-issues]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
467
+ [🤝gh-pulls]: https://github.com/rubocop-lts/rubocop-ruby2_2/pulls
468
+ [🤝gl-issues]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/issues
469
+ [🤝gl-pulls]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/merge_requests
470
+ [🤝cb-issues]: https://codeberg.org/rubocop-lts/rubocop-ruby2_2/issues
471
+ [🤝cb-pulls]: https://codeberg.org/rubocop-lts/rubocop-ruby2_2/pulls
472
+ [🤝cb-donate]: https://donate.codeberg.org/
473
+ [🤝contributing]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CONTRIBUTING.md
474
+ [🏀codecov-g]: https://codecov.io/gh/rubocop-lts/rubocop-ruby2_2/graph/badge.svg
475
+ [🖐contrib-rocks]: https://contrib.rocks
476
+ [🖐contributors]: https://github.com/rubocop-lts/rubocop-ruby2_2/graphs/contributors
477
+ [🖐contributors-img]: https://contrib.rocks/image?repo=rubocop-lts/rubocop-ruby2_2
478
+ [🚎contributors-gl]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/graphs/main
479
+ [🪇conduct]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CODE_OF_CONDUCT.md
480
+ [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
481
+ [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
482
+ [📌semver]: https://semver.org/spec/v2.0.0.html
483
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
484
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
485
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
486
+ [📌changelog]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/CHANGELOG.md
487
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
488
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
489
+ [📌gitmoji]: https://gitmoji.dev
490
+ [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
491
+ [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
492
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.029-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
493
+ [🔐security]: https://github.com/rubocop-lts/rubocop-ruby2_2/blob/main/SECURITY.md
494
+ [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
495
+ [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
496
+ [📄license]: LICENSE.md
497
+ [📄license-ref]: MIT.md
498
+ [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
499
+ [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
500
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
501
+
502
+ [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
503
+ [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
504
+ [🚎yard-current]: http://rubydoc.info/gems/rubocop-ruby2_2
505
+ [🚎yard-head]: https://rubocop-ruby2-2.galtzo.com
506
+ [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
507
+ [💎SHA_checksums]: https://gitlab.com/rubocop-lts/rubocop-ruby2_2/-/tree/main/checksums
508
+ [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
509
+ [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
510
+ [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
511
+ [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
512
+ [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
513
+
514
+ <!-- kettle-jem:metadata:start -->
515
+ | Field | Value |
516
+ |---|---|
517
+ | Package | rubocop-ruby2_2 |
518
+ | Description | 🦾 Configure RuboCop + a bevy of friends to gradually lint Ruby 2.2 code |
519
+ | Homepage | https://github.com/rubocop-lts/rubocop-ruby2_2 |
520
+ | Source | https://github.com/rubocop-lts/rubocop-ruby2_2 |
521
+ | License | `MIT` |
522
+ | Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/rubocop-lts, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/rubocop-ruby2_2, https://www.buymeacoffee.com/pboling |
523
+ <!-- kettle-jem:metadata:end -->