standard-rubocop-lts 1.0.10 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -18,8 +18,35 @@
18
18
 
19
19
  # 🦾 Standard::Rubocop::Lts
20
20
 
21
- Extended [standard (Standard Ruby)][standardrb] config shims for all your finely-aged rubies,
22
- back to Ruby version 1.8. Compatible with the `rubocop-lts` [gem family](#-a-gem-family).
21
+ [![Version][👽versioni]][👽version]
22
+ [![License: MIT][📄license-img]][📄license-ref]
23
+ [![Downloads Rank][👽dl-ranki]][👽dl-rank]
24
+ [![Open Source Helpers][👽oss-helpi]][👽oss-help]
25
+ [![Depfu][🔑depfui♻️]][🔑depfu]
26
+ [![CodeCov Test Coverage][🔑codecovi♻️]][🔑codecov]
27
+ [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls]
28
+ [![CodeClimate Test Coverage][🔑cc-covi♻️]][🔑cc-cov]
29
+ [![Maintainability][🔑cc-mnti♻️]][🔑cc-mnt]
30
+ [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf]
31
+ [![CI Current][🚎11-c-wfi]][🚎11-c-wf]
32
+ [![CI Supported][🚎6-s-wfi]][🚎6-s-wf]
33
+ [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf]
34
+ [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
35
+ [![CI Dog Food][🚎8-df-wfi]][🚎8-df-wf]
36
+
37
+ ---
38
+
39
+ [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
40
+ [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
41
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme]
42
+ [![Donate on Polar][🖇polar-img]][🖇polar]
43
+ [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
44
+ [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
45
+
46
+ Extended [standard (Standard Ruby)][standardrb] config shims for any and every version of Ruby,
47
+ back to Ruby version 1.8.
48
+ Enables Ruby projects to more confidently support even the most finely-aged Rubies.
49
+ Part of the `rubocop-lts` [gem family](#-a-gem-family).
23
50
 
24
51
  Use the rules standard gives you, and then add more,
25
52
  to increase your code's compatibility across multiple versions of Ruby.
@@ -30,7 +57,7 @@ Only reach as far back as you need to go!
30
57
 
31
58
  ---
32
59
 
33
- The **RuboCop LTS** family of gems is the distillation of almost 20 years
60
+ The **RuboCop LTS** family of gems is the distillation of more than 20 years
34
61
  of my own Ruby expertise and source code diving,
35
62
  built on the shoulders of the expertise of many others;
36
63
  organizing that expertise into per-Ruby-version sets of configurations.
@@ -50,57 +77,19 @@ please support my efforts by making a donation, or becoming a sponsor.
50
77
 
51
78
  [Why-Build-This]: https://rubocop-lts.gitlab.io/about/#why-build-this-
52
79
 
53
- <div id="badges">
54
-
55
- [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
56
- [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
57
-
58
- <span class="badge-buymeacoffee">
59
- <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>
60
- </span>
61
- <span class="badge-patreon">
62
- <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>
63
- </span>
64
-
65
- </div>
66
-
67
- [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
68
- [⛳liberapay]: https://liberapay.com/pboling/donate
69
- [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
70
- [🖇sponsor]: https://github.com/sponsors/pboling
71
-
72
80
  ---
73
81
 
74
82
  NOTE: You might be interested in [`rubocop-lts`][rlts] which sits as a higher level than, and depends on, this gem.
75
83
  It will enable your Ruby style rules to keep pace with whatever version of Ruby your project happens to be on!
76
84
 
77
- | Gem Name | Version | Downloads | CI | Activity |
78
- |-------------------------------|-------------------------------------|----------------------------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
79
- | [`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] |
80
- | [`standard-rubocop-lts`][⛳️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] |
81
-
82
- <!-- columnar badge #s for Project Health table:
83
- ⛳️
84
- 🖇
85
- 🏘
86
- 🚎
87
- 🖐
88
- 🧮
89
- 📗
90
- 🚀
91
- 💄
92
- 👽
93
- -->
85
+ | Gem Name | Version | Downloads | Activity |
86
+ |------------------------------------|-------------------------------------|----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
87
+ | [`rubocop-lts`][⛳️lts-gh] | [![Gem Version][⛳️lts-vi]][⛳️lts-g] | [![Total DL][🖇️lts-dti]][⛳️lts-g] [![DL Rank][🏘️lts-rti]][⛳️lts-g] | [![Open Issues][📗lts-ioi]][📗lts-io] [![Closed Issues][🚀lts-ici]][🚀lts-ic] [![Open PRs][💄lts-poi]][💄lts-po] [![Closed PRs][👽lts-pci]][👽lts-pc] |
88
+ | [`standard-rubocop-lts`][⛳️ini-gh] | [![Gem Version][⛳️ini-vi]][⛳️ini-g] | [![Total DL][🖇️ini-dti]][⛳️ini-g] [![DL Rank][🏘️ini-rti]][⛳️ini-g] | [![Open Issues][📗ini-ioi]][📗ini-io] [![Closed Issues][🚀ini-ici]][🚀ini-ic] [![Open PRs][💄ini-poi]][💄ini-po] [![Closed PRs][👽ini-pci]][👽ini-pc] |
94
89
 
95
90
  [⛳️lts-vi]: http://img.shields.io/gem/v/rubocop-lts.svg
96
91
  [🖇️lts-dti]: https://img.shields.io/gem/dt/rubocop-lts.svg
97
92
  [🏘️lts-rti]: https://img.shields.io/gem/rt/rubocop-lts.svg
98
- [🚎lts-cwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml
99
- [🚎lts-cwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml/badge.svg
100
- [🖐lts-hwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml
101
- [🖐lts-hwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml/badge.svg
102
- [🧮lts-lwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml
103
- [🧮lts-lwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml/badge.svg
104
93
  [📗lts-io]: https://github.com/rubocop-lts/rubocop-lts/issues
105
94
  [📗lts-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-lts
106
95
  [🚀lts-ic]: https://github.com/rubocop-lts/rubocop-lts/issues?q=is%3Aissue+is%3Aclosed
@@ -119,8 +108,6 @@ It will enable your Ruby style rules to keep pace with whatever version of Ruby
119
108
  [🚎ini-cwfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/current.yml/badge.svg
120
109
  [🖐ini-hwf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/heads.yml
121
110
  [🖐ini-hwfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/heads.yml/badge.svg
122
- [🧮ini-lwf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/legacy.yml
123
- [🧮ini-lwfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/legacy.yml/badge.svg
124
111
  [📗ini-io]: https://github.com/rubocop-lts/standard-rubocop-lts/issues
125
112
  [📗ini-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/standard-rubocop-lts
126
113
  [🚀ini-ic]: https://github.com/rubocop-lts/standard-rubocop-lts/issues?q=is%3Aissue+is%3Aclosed
@@ -138,6 +125,7 @@ The `rubocop-lts` family of gems has a version supporting any version of Ruby yo
138
125
  They can be used as development dependencies for libraries or applications.
139
126
 
140
127
  - [`rubocop-lts`][rlts]
128
+ - [`rubocop-lts-rspec`][rlts-rspec]
141
129
  - [`standard-rubocop-lts`][stdrlts]
142
130
  - [`rubocop-ruby1_8`][rr18]
143
131
  - [`rubocop-ruby1_9`][rr19]
@@ -152,8 +140,11 @@ They can be used as development dependencies for libraries or applications.
152
140
  - [`rubocop-ruby3_0`][rr30]
153
141
  - [`rubocop-ruby3_1`][rr31]
154
142
  - [`rubocop-ruby3_2`][rr32]
143
+ - [`rubocop-ruby3_3`][rr33]
144
+ - [`rubocop-ruby3_4`][rr34]
155
145
 
156
146
  [rlts]: https://rubocop-lts.gitlab.io/#installation-
147
+ [rlts-rspec]: https://gitlab.com/rubocop-lts/rubocop-lts-rspec
157
148
  [stdrlts]: https://gitlab.com/rubocop-lts/standard-rubocop-lts
158
149
  [rr18]: https://gitlab.com/rubocop-lts/rubocop-ruby1_8
159
150
  [rr19]: https://gitlab.com/rubocop-lts/rubocop-ruby1_9
@@ -168,6 +159,8 @@ They can be used as development dependencies for libraries or applications.
168
159
  [rr30]: https://gitlab.com/rubocop-lts/rubocop-ruby3_0
169
160
  [rr31]: https://gitlab.com/rubocop-lts/rubocop-ruby3_1
170
161
  [rr32]: https://gitlab.com/rubocop-lts/rubocop-ruby3_2
162
+ [rr33]: https://gitlab.com/rubocop-lts/rubocop-ruby3_3
163
+ [rr34]: https://gitlab.com/rubocop-lts/rubocop-ruby3_4
171
164
 
172
165
  ## 🗿 Stable
173
166
 
@@ -178,6 +171,19 @@ A typical release cycle for a gem in the `rubocop-lts` family is roughly every s
178
171
  though eventually analysis support for an old version of Ruby will be dropped.
179
172
  When that happens releases of the `rubocop-lts` gem for that version of Ruby will (mostly) cease.
180
173
 
174
+ ## Info you can shake a stick at
175
+
176
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
177
+ |--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
178
+ | Works with MRI Ruby 3.2+ | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
179
+ | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
180
+ | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![HEAD on RubyDoc.info][📜docs-head-rd-img]][🚎yard-head] [![BDFL Blog][🚂bdfl-blog-img]][🚂bdfl-blog] [![Wiki][📜wiki-img]][📜wiki] |
181
+ | Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] |
182
+ | Expert 1:1 Support | [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] `or` [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
183
+ | Enterprise Support | [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]<br/>💡Subscribe for support guarantees covering _all_ FLOSS dependencies!<br/>💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]!<br/>💡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! |
184
+ | Comrade BDFL 🎖️ | [![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 BDFL][🚂bdfl-contact-img]][🚂bdfl-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
185
+ | `...` 💖 | [![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] |
186
+
181
187
  ## ✨ Installation
182
188
 
183
189
  In case you missed it above - you may be better off _not_ depending on this gem _directly_.
@@ -212,7 +218,7 @@ Among other settings specific to your chosen minimum version of ruby,
212
218
  the above _effectively_ results in the following config (& more):
213
219
 
214
220
  ```yaml
215
- # We want Exclude and Include directives from different
221
+ # We want the Exclude and Include directives from different
216
222
  # config files to get merged, not overwritten
217
223
  inherit_mode:
218
224
  merge:
@@ -275,8 +281,8 @@ Performance/IoReadlines:
275
281
  # NOTE: Picking the right version of rubocop-lts automatically aligns:
276
282
  # - gemspec's required_ruby_version
277
283
  # - RuboCop's TargetRubyVersion
278
- # e.g. v18 for Ruby >= 2.7.0
279
- gem "rubocop-lts", "~> 18.2.1", require: false
284
+ # e.g. v24 for Ruby >= 3.2.0
285
+ gem "rubocop-lts", "~> 24.0", require: false
280
286
  ```
281
287
 
282
288
  ## 💻 Development
@@ -290,36 +296,107 @@ To install this gem onto your local machine, run `bundle exec rake install`.
290
296
 
291
297
  ### 🚀 Release Instructions
292
298
 
293
- See [CONTRIBUTING.md][contributing].
299
+ See [CONTRIBUTING.md][🤝contributing].
300
+
301
+ ## 🔐 Security
302
+
303
+ See [SECURITY.md][🔐security].
304
+
305
+ ## 🤝 Contributing
306
+
307
+ If you need some ideas of where to help, you could work on adding more code coverage,
308
+ or if it is already 💯 (see [below](#code-coverage)) check TODOs (see [below](#todos)),
309
+ or check [issues][🤝issues], or [PRs][🤝pulls],
310
+ or use the gem and think about how it could be better.
311
+
312
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
313
+
314
+ See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
294
315
 
295
- ## ⚡️ Contributing
316
+ ### Code Coverage
296
317
 
297
- See [CONTRIBUTING.md][contributing]
318
+ [![Coverage Graph][🔑codecov-g♻️]][🔑codecov]
319
+
320
+ ### 🪇 Code of Conduct
321
+
322
+ Everyone interacting in this project's codebases, issue trackers,
323
+ chat rooms and mailing lists is expected to follow the [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct].
298
324
 
299
325
  ## 🌈 Contributors
300
326
 
301
- [![Contributors](https://contrib.rocks/image?repo=rubocop-lts/standard-rubocop-lts)]("https://github.com/rubocop-lts/standard-rubocop-lts/graphs/contributors")
327
+ [![Contributors][🖐contributors-img]][🖐contributors]
328
+
329
+ Made with [contributors-img][🖐contrib-rocks].
330
+
331
+ Also see GitLab Contributors: [https://gitlab.com/rubocop-lts/standard-rubocop-lts/-/graphs/main][🚎contributors-gl]
332
+
333
+ ## ⭐️ Star History
334
+
335
+ <a href="https://star-history.com/#rubocop-lts/standard-rubocop-lts&Date">
336
+ <picture>
337
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=rubocop-lts/standard-rubocop-lts&type=Date&theme=dark" />
338
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=rubocop-lts/standard-rubocop-lts&type=Date" />
339
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=rubocop-lts/standard-rubocop-lts&type=Date" />
340
+ </picture>
341
+ </a>
342
+
343
+ ## 📌 Versioning
302
344
 
303
- Made with [contributors-img](https://contrib.rocks).
345
+ This Library adheres to [![Semantic Versioning 2.0.0][📌semver-img]][📌semver].
346
+ Violations of this scheme should be reported as bugs.
347
+ Specifically, if a minor or patch version is released that breaks backward compatibility,
348
+ a new version should be immediately released that restores compatibility.
349
+ Breaking changes to the public API will only be introduced with new major versions.
350
+
351
+ ### 📌 Is "Platform Support" part of the public API?
352
+
353
+ Yes. But I'm obligated to include notes...
354
+
355
+ SemVer should, but doesn't explicitly, say that dropping support for specific Platforms
356
+ is a *breaking change* to an API.
357
+ It is obvious to many, but not all, and since the spec is silent, the bike shedding is endless.
358
+
359
+ > dropping support for a platform is both obviously and objectively a breaking change
360
+
361
+ - Jordan Harband (@ljharb) [in SemVer issue 716][📌semver-breaking]
362
+
363
+ To get a better understanding of how SemVer is intended to work over a project's lifetime,
364
+ read this article from the creator of SemVer:
365
+
366
+ - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
367
+
368
+ As a result of this policy, and the interpretive lens used by the maintainer,
369
+ you can (and should) specify a dependency on these libraries using
370
+ the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
371
+
372
+ For example:
373
+
374
+ ```ruby
375
+ spec.add_dependency("standard-rubocop-lts", "~> 2.0")
376
+ ```
377
+
378
+ See [CHANGELOG.md][📌changelog] for list of releases.
304
379
 
305
380
  ## 📄 License
306
381
 
307
382
  The gem is available as open source under the terms of
308
- the [MIT License][license] [![License: MIT][license-img]][license-ref].
309
- See [LICENSE.txt][license] for the official [Copyright Notice][copyright-notice-explainer].
383
+ the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
384
+ See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
310
385
 
311
386
  <details>
312
387
  <summary>Project Logos (standard-rubocop-lts)</summary>
313
388
 
314
389
  See [docs/images/logo/README.txt][project-logos]
390
+
315
391
  </details>
316
392
 
317
393
  <details>
318
394
  <summary>Organization Logo (rubocop-lts)</summary>
319
395
 
320
- Author: [Yusuf Evli][org-logo-author]
321
- Source: [Unsplash][org-logo-source]
322
- License: [Unsplash License][org-logo-license]
396
+ - Author: [Yusuf Evli][org-logo-author]
397
+ - Source: [Unsplash][org-logo-source]
398
+ - License: [Unsplash License][org-logo-license]
399
+
323
400
  </details>
324
401
 
325
402
  [project-logos]: https://github.com/rubocop-lts/standard-rubocop-lts/blob/main/docs/images/logo/README.txt
@@ -329,55 +406,148 @@ License: [Unsplash License][org-logo-license]
329
406
 
330
407
  ### © Copyright
331
408
 
332
- * Copyright (c) 2023 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
333
-
334
- ## 🤝 Code of Conduct
335
-
336
- Everyone interacting in this project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/rubocop-lts/standard-rubocop-lts/blob/main/CODE_OF_CONDUCT.md).
337
-
338
- ## 📌 Versioning
339
-
340
- This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations of this scheme should be reported as
341
- bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be
342
- immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new
343
- major versions.
344
-
345
- As a result of this policy, you can (and should) specify a dependency on this gem using
346
- the [Pessimistic Version Constraint][pvc] with two digits of precision.
347
-
348
- For example:
349
-
350
- ```ruby
351
- spec.add_dependency "standard-rubocop-lts", "~> 1.0"
352
- ```
409
+ <p>
410
+ Copyright (c) 2023 - 2025 Peter H. Boling,
411
+ <a href="https://railsbling.com">
412
+ RailsBling.com
413
+ <picture>
414
+ <img alt="Rails Bling" height="20" src="https://railsbling.com/images/logos/RailsBling-TrainLogo.svg" />
415
+ </picture>
416
+ </a>
417
+ </p>
353
418
 
354
- [aboutme]: https://about.me/peter.boling
355
- [actions]: https://github.com/rubocop-lts/standard-rubocop-lts/actions
356
- [angelme]: https://angel.co/peter-boling
357
- [blogpage]: http://www.railsbling.com/tags/standard-rubocop-lts/
358
- [codecov_coverage]: https://codecov.io/gh/rubocop-lts/standard-rubocop-lts
359
- [code_triage]: https://www.codetriage.com/rubocop-lts/standard-rubocop-lts
360
- [chat]: https://gitter.im/rubocop-lts/standard-rubocop-lts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
361
- [climate_coverage]: https://codeclimate.com/github/rubocop-lts/standard-rubocop-lts/test_coverage
362
- [climate_maintainability]: https://codeclimate.com/github/rubocop-lts/standard-rubocop-lts/maintainability
363
- [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
364
- [conduct]: https://github.com/rubocop-lts/standard-rubocop-lts/blob/main/CODE_OF_CONDUCT.md
365
- [contributing]: https://github.com/rubocop-lts/standard-rubocop-lts/blob/main/CONTRIBUTING.md
366
- [devto]: https://dev.to/galtzo
367
- [documentation]: https://rubydoc.info/github/rubocop-lts/standard-rubocop-lts/main
368
- [followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
369
- [gh_discussions]: https://github.com/rubocop-lts/standard-rubocop-lts/discussions
370
- [gh_sponsors]: https://github.com/sponsors/pboling
371
- [issues]: https://github.com/rubocop-lts/standard-rubocop-lts/issues
372
- [liberapay_donate]: https://liberapay.com/pboling/donate
373
- [license]: LICENSE.txt
374
- [license-ref]: https://opensource.org/licenses/MIT
375
- [license-img]: https://img.shields.io/badge/License-MIT-green.svg
376
- [peterboling]: http://www.peterboling.com
377
- [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
378
- [railsbling]: http://www.railsbling.com
379
- [rubygems]: https://rubygems.org/gems/standard-rubocop-lts
380
- [security]: https://github.com/rubocop-lts/standard-rubocop-lts/blob/main/SECURITY.md
381
- [semver]: http://semver.org/
382
- [source]: https://github.com/rubocop-lts/standard-rubocop-lts/
383
- [tweetme]: http://twitter.com/galtzo
419
+ ## 🤑 One more thing
420
+
421
+ You made it to the bottom of the page,
422
+ so perhaps you'll indulge me for another 20 seconds.
423
+ I maintain many dozens of gems, including this one,
424
+ because I want Ruby to be a great place for people to solve problems, big and small.
425
+ Please consider supporting my efforts via the giant yellow link below,
426
+ or one of the others at the head of this README.
427
+
428
+ [![Buy me a latte][🖇buyme-img]][🖇buyme]
429
+
430
+ [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
431
+ [⛳️gem-namespace]: https://github.com/rubocop-lts/standard-rubocop-lts/blob/main/lib/masq.rb
432
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-Standard%3A%3ARubocop%3A%3ALts-brightgreen.svg?style=flat&logo=ruby&logoColor=white
433
+ [⛳️gem-name]: https://rubygems.org/gems/standard-rubocop-lts
434
+ [⛳️name-img]: https://img.shields.io/badge/name-standard--rubocop--lts-brightgreen.svg?style=flat&logo=rubygems&logoColor=red
435
+ [🚂bdfl-blog]: http://www.railsbling.com/tags/standard-rubocop-lts
436
+ [🚂bdfl-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
437
+ [🚂bdfl-contact]: http://www.railsbling.com/contact
438
+ [🚂bdfl-contact-img]: https://img.shields.io/badge/Contact-BDFL-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
439
+ [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
440
+ [💖🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-LinkedIn-0B66C2?style=flat&logo=newjapanprowrestling
441
+ [💖✌️wellfound]: https://angel.co/u/peter-boling
442
+ [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
443
+ [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
444
+ [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
445
+ [💖🐘ruby-mast]: https://ruby.social/@galtzo
446
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=flat&logo=mastodon&label=Ruby%20%40galtzo
447
+ [💖🦋bluesky]: https://galtzo.bsky.social
448
+ [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.bsky.social-0285FF?style=flat&logo=bluesky&logoColor=white
449
+ [💖🌳linktree]: https://linktr.ee/galtzo
450
+ [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
451
+ [💖💁🏼‍♂️devto]: https://dev.to/galtzo
452
+ [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
453
+ [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
454
+ [💖💁🏼‍♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
455
+ [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
456
+ [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
457
+ [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
458
+ [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
459
+ [🏙️entsup-tidelift]: https://tidelift.com/subscription
460
+ [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
461
+ [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
462
+ [💁🏼‍♂️peterboling]: http://www.peterboling.com
463
+ [🚂railsbling]: http://www.railsbling.com
464
+ [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
465
+ [📜src-gl]: https://gitlab.com/rubocop-lts/standard-rubocop-lts/
466
+ [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
467
+ [📜src-gh]: https://github.com/rubocop-lts/standard-rubocop-lts/
468
+ [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
469
+ [📜docs-head-rd-img]: https://img.shields.io/badge/RubyDoc-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
470
+ [📜wiki]: https://gitlab.com/rubocop-lts/standard-rubocop-lts/-/wikis/home
471
+ [📜wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=Wiki&logoColor=white
472
+ [👽dl-rank]: https://rubygems.org/gems/standard-rubocop-lts
473
+ [👽dl-ranki]: https://img.shields.io/gem/rd/standard-rubocop-lts.svg
474
+ [👽oss-help]: https://www.codetriage.com/rubocop-lts/standard-rubocop-lts
475
+ [👽oss-helpi]: https://www.codetriage.com/rubocop-lts/standard-rubocop-lts/badges/users.svg
476
+ [👽version]: https://rubygems.org/gems/standard-rubocop-lts
477
+ [👽versioni]: https://img.shields.io/gem/v/standard-rubocop-lts.svg
478
+ [🔑cc-mnt]: https://qlty.sh/gh/rubocop-lts/projects/standard-rubocop-lts
479
+ [🔑cc-mnti♻️]: https://qlty.sh/badges/4daa5208-3ae5-457c-b601-10de129d17b1/maintainability.svg
480
+ [🔑cc-cov]: https://qlty.sh/gh/rubocop-lts/projects/standard-rubocop-lts
481
+ [🔑cc-covi♻️]: https://qlty.sh/badges/4daa5208-3ae5-457c-b601-10de129d17b1/test_coverage.svg
482
+ [🔑codecov]: https://codecov.io/gh/rubocop-lts/standard-rubocop-lts
483
+ [🔑codecovi♻️]: https://codecov.io/gh/rubocop-lts/standard-rubocop-lts/branch/main/graph/badge.svg?token=l44un82aUp
484
+ [🔑coveralls]: https://coveralls.io/github/rubocop-lts/standard-rubocop-lts?branch=main
485
+ [🔑coveralls-img]: https://coveralls.io/repos/github/rubocop-lts/standard-rubocop-lts/badge.svg?branch=main
486
+ [🔑depfu]: https://depfu.com/github/rubocop-lts/standard-rubocop-lts?project_id=60302
487
+ [🔑depfui♻️]: https://badges.depfu.com/badges/31479c66ece5143367e8d3d50aef18b5/count.svg
488
+ [🖐codeQL]: https://github.com/rubocop-lts/standard-rubocop-lts/security/code-scanning
489
+ [🖐codeQL-img]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/codeql-analysis.yml/badge.svg
490
+ [🚎1-an-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/ancient.yml
491
+ [🚎1-an-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/ancient.yml/badge.svg
492
+ [🚎2-cov-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/coverage.yml
493
+ [🚎2-cov-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/coverage.yml/badge.svg
494
+ [🚎3-hd-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/heads.yml
495
+ [🚎3-hd-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/heads.yml/badge.svg
496
+ [🚎5-st-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/style.yml
497
+ [🚎5-st-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/style.yml/badge.svg
498
+ [🚎6-s-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/supported.yml
499
+ [🚎6-s-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/supported.yml/badge.svg
500
+ [🚎8-df-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/dogfood.yml
501
+ [🚎8-df-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/dogfood.yml/badge.svg
502
+ [🚎11-c-wf]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/current.yml
503
+ [🚎11-c-wfi]: https://github.com/rubocop-lts/standard-rubocop-lts/actions/workflows/current.yml/badge.svg
504
+ [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
505
+ [⛳liberapay]: https://liberapay.com/pboling/donate
506
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
507
+ [🖇sponsor]: https://github.com/sponsors/pboling
508
+ [🖇polar-img]: https://img.shields.io/badge/polar-donate-yellow.svg
509
+ [🖇polar]: https://polar.sh/pboling
510
+ [🖇kofi-img]: https://img.shields.io/badge/a_more_different_coffee-✓-yellow.svg
511
+ [🖇kofi]: https://ko-fi.com/O5O86SNP4
512
+ [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-yellow.svg
513
+ [🖇patreon]: https://patreon.com/galtzo
514
+ [🖇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
515
+ [🖇buyme]: https://www.buymeacoffee.com/pboling
516
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-✓-yellow.svg?style=flat
517
+ [💎ruby-2.7i]: https://img.shields.io/badge/Ruby-2.7-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
518
+ [💎ruby-3.0i]: https://img.shields.io/badge/Ruby-3.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
519
+ [💎ruby-3.1i]: https://img.shields.io/badge/Ruby-3.1-CC342D?style=for-the-badge&logo=ruby&logoColor=white
520
+ [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
521
+ [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
522
+ [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
523
+ [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
524
+ [🤝issues]: https://github.com/rubocop-lts/standard-rubocop-lts/issues
525
+ [🤝pulls]: https://github.com/rubocop-lts/standard-rubocop-lts/pulls
526
+ [🤝contributing]: CONTRIBUTING.md
527
+ [🔑codecov-g♻️]: https://codecov.io/gh/rubocop-lts/standard-rubocop-lts/graphs/tree.svg?token=l44un82aUp
528
+ [🖐contrib-rocks]: https://contrib.rocks
529
+ [🖐contributors]: https://github.com/rubocop-lts/standard-rubocop-lts/graphs/contributors
530
+ [🖐contributors-img]: https://contrib.rocks/image?repo=rubocop-lts/standard-rubocop-lts
531
+ [🚎contributors-gl]: https://gitlab.com/rubocop-lts/standard-rubocop-lts/-/graphs/main
532
+ [🪇conduct]: CODE_OF_CONDUCT.md
533
+ [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-4baaaa.svg
534
+ [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
535
+ [📌semver]: https://semver.org/spec/v2.0.0.html
536
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
537
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
538
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
539
+ [📌changelog]: CHANGELOG.md
540
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
541
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
542
+ [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
543
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.018-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
544
+ [🔐security]: SECURITY.md
545
+ [🔐security-img]: https://img.shields.io/badge/security-policy-brightgreen.svg?style=flat
546
+ [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
547
+ [📄license]: LICENSE.txt
548
+ [📄license-ref]: https://opensource.org/licenses/MIT
549
+ [📄license-img]: https://img.shields.io/badge/License-MIT-green.svg
550
+ [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
551
+ [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-brightgreen.svg?style=flat
552
+ [🚎yard-current]: http://rubydoc.info/gems/standard-rubocop-lts
553
+ [🚎yard-head]: https://rubydoc.info/github/rubocop-lts/standard-rubocop-lts/main
data/SECURITY.md CHANGED
@@ -4,7 +4,8 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |---------|-----------|
7
- | 1.x | ✅ |
7
+ | 2.x | ✅ |
8
+ | 1.0.x | ✅ |
8
9
 
9
10
  ## Reporting a Vulnerability
10
11
 
@@ -0,0 +1,37 @@
1
+ # The standard generated bin/bundle script from `bundle binstubs --all`
2
+ # does not comply with our style guide, but it is frequently regenerated
3
+ # so rather than repeatedly churning the file, we let it be.
4
+ ThreadSafety/ClassInstanceVariable:
5
+ Enabled: true
6
+ Exclude:
7
+ - bin/bundle
8
+
9
+ Style/InvertibleUnlessCondition:
10
+ Enabled: true
11
+ Exclude:
12
+ - bin/bundle
13
+
14
+ Style/MethodCallWithArgsParentheses:
15
+ Enabled: true
16
+ Exclude:
17
+ - bin/bundle
18
+
19
+ Metrics/CyclomaticComplexity:
20
+ Enabled: true
21
+ Exclude:
22
+ - bin/bundle
23
+
24
+ Metrics/MethodLength:
25
+ Enabled: true
26
+ Exclude:
27
+ - bin/bundle
28
+
29
+ Metrics/PerceivedComplexity:
30
+ Enabled: true
31
+ Exclude:
32
+ - bin/bundle
33
+
34
+ Layout/LineLength:
35
+ Enabled: true
36
+ Exclude:
37
+ - bin/bundle
@@ -10,10 +10,14 @@ inherit_from: ./ruby-2.0.yml
10
10
  Style/PercentLiteralDelimiters:
11
11
  Enabled: false
12
12
 
13
+ # Ruby < 2.0 only support bracketed arrays
13
14
  Style/SymbolArray:
15
+ Enabled: true
14
16
  EnforcedStyle: brackets
15
17
 
18
+ # Ruby < 2.0 only support bracketed arrays
16
19
  Style/WordArray:
20
+ Enabled: true
17
21
  EnforcedStyle: brackets
18
22
 
19
23
  ##############################################################################
@@ -2,3 +2,9 @@ inherit_from: ./ruby-2.1.yml
2
2
 
3
3
  AllCops:
4
4
  TargetRubyVersion: 2.0
5
+
6
+ # Disabled by Standard, which doesn't help compat, so overriding for Ruby < 2.1
7
+ # See: https://github.com/standardrb/standard/blob/main/config/ruby-1.9.yml#L6C1-L6C21
8
+ Style/HashConversion:
9
+ Enabled: true
10
+ AllowSplatArgument: false
@@ -0,0 +1,4 @@
1
+ inherit_from: ./base.yml
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 3.4
@@ -0,0 +1,6 @@
1
+ inherit_from: ./base.yml
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 3.4
5
+ # TODO: December 25, 2025
6
+ # TargetRubyVersion: 3.5
data/config/ruby-1.8.yml CHANGED
@@ -1,16 +1,18 @@
1
- # We want Exclude and Include directives from different
1
+ # We want the Exclude and Include directives from different
2
2
  # config files to get merged, not overwritten
3
3
  inherit_mode:
4
4
  merge:
5
5
  - Exclude
6
6
  - Include
7
7
 
8
+ plugins:
9
+ - rubocop-performance
10
+ - standard-performance
11
+ - standard-custom
12
+
8
13
  require:
9
14
  - standard-rubocop-lts
10
15
  - standard
11
- - standard-performance
12
- - standard-custom
13
- - rubocop-performance
14
16
 
15
17
  # Load basic rules for this version of Ruby from standard.
16
18
  # Rules are overridden in a LIFO stack.