version_gem 1.1.3 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c7542245fe84d4314202cd4ea1347fdaefce4cdc256fc7216705c90561e0a07f
4
- data.tar.gz: 8864b667e84866e2d4365b7e2105dbb4e6be10bf64b08547afc357bb1e9a7f96
3
+ metadata.gz: 46fdc77dde9960d5a1cc1e8e4d5c167886ef9852e8dd653f99f13901639f9ed3
4
+ data.tar.gz: 53f6e874d39543bde0be8158ae9631c41baad47b86600c30cc5ec4658ecdfe07
5
5
  SHA512:
6
- metadata.gz: 12ece5174289be925d3401789beee24d3ecee4438595fa453d51b57af5d44ffa9edf80cb313fd5c96f1c3f969d0af00a360ce723394d80a33e02c5a6e1064538
7
- data.tar.gz: ddf738a490b738f42a89d060fa76c0c186a462f0edda7cc970b20e1e62cb918e7e8db06c18b805f31f9933c8c734b9ddebc863481c3ced59e8e4e99092e9d678
6
+ metadata.gz: '0118cebf5ed37f1f964558421edc1aab00fdae41664575be68071775003f2d6cdabaabccc550155aea97d39a7a10d7ec462879db52ddfa521151ab1633fee141'
7
+ data.tar.gz: 777c2180b9e60dce87a8fb21dc17aa8005cc7be83393891d9d1522d07819e38f34b6e8a5584f66588acda6250488728d80d166fe90c61ee43bd08c50133b953d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -10,6 +10,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10
10
  ### Fixed
11
11
  ### Removed
12
12
 
13
+ ## [1.1.5] 2025-02-21 ([tag][1.1.5t])
14
+ - Line Coverage: 100.0% (77 / 77)
15
+ - Branch Coverage: 100.0% (2 / 2)
16
+ - 77.78% documented
17
+ ### Added
18
+ - Document approach to get code coverage on your gem's version.rb file
19
+ - More documentation, and yard task for documentation
20
+ - Documentation of Ruby version and SemVer support
21
+ ### Fixed
22
+ - [#3](https://gitlab.com/oauth-xx/version_gem/-/issues/3) - Allow packaging without signing
23
+ - to support secure linux distros which have alternate means of signing packages within their package managers
24
+ - Code coverage tracking
25
+ - Documentation of usage in gemspec via `Kernel.load`
26
+ - Improved gemspec config
27
+
28
+ ## [1.1.4] 2024-03-21 ([tag][1.1.4t])
29
+ ### Added
30
+ - Ruby 3.3 to CI (@pboling)
31
+ ### Fixed
32
+ - Remove the executable bit from non-executable files (@Fryguy)
33
+
13
34
  ## [1.1.3] 2023-06-05 ([tag][1.1.3t])
14
35
  ### Added
15
36
  - More test coverage (now 100% 🎉) (@pboling)
@@ -26,6 +47,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
47
  - (dev) Rake task for rubocop_gradual (@pboling)
27
48
  ### Fixed
28
49
  - (dev) `yard` documentation task (@pboling)
50
+ ### Removed
51
+ - Formally drop Ruby 2.2 support
52
+ - Ruby 2.2 was already de facto minimum version supported, which is why this wasn't a 2.0 release.
29
53
 
30
54
  ## [1.1.2] - 2023-03-17 ([tag][1.1.2t])
31
55
  ### Added
@@ -66,7 +90,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66
90
  ### Added
67
91
  - Initial release, with basic version parsing API (@pboling)
68
92
 
69
- [Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.3...HEAD
93
+ [Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.5...main
94
+ [1.1.5]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.4...v1.1.5
95
+ [1.1.5t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.5
96
+ [1.1.4]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.3...v1.1.4
97
+ [1.1.4t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.4
70
98
  [1.1.3]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.2...v1.1.3
71
99
  [1.1.3t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.3
72
100
  [1.1.2]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.1...v1.1.2
data/CONTRIBUTING.md CHANGED
@@ -1,40 +1,131 @@
1
1
  ## Contributing
2
2
 
3
- Bug reports and pull requests are welcome on GitLab at [https://gitlab.com/oauth-xx/version_gem][🚎src-main]
3
+ Bug reports and pull requests are welcome on GitHub at [https://gitlab.com/oauth-xx/version_gem][🚎src-main]
4
4
  . This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
5
- the [code of conduct][conduct].
5
+ the [code of conduct][🤝conduct].
6
6
 
7
7
  To submit a patch, please fork the project and create a patch with
8
8
  tests. Once you're happy with it send a pull request and post a message to the
9
9
  [google group][⛳mail-list] or on the [gitter chat][🏘chat].
10
10
 
11
- ## Release
11
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
12
12
 
13
- To release a new version:
13
+ ## You can help!
14
14
 
15
- 1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check.
16
- 2. update the version number in `version.rb`
17
- 3. run `bundle exec rake build:checksum`
18
- 4. move the built gem to project root
19
- 5. run `bin/checksum` to create the missing SHA256 checksum
20
- 6. move the built gem back to `pkg/`
21
- 7. commit the changes
22
- 8. run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org][rubygems].
15
+ Simply follow these instructions:
23
16
 
24
- NOTE: You will need to have a public key in `certs/`, and list your cert in the
25
- `gemspec`, in order to sign the new release.
26
- See: [RubyGems Security Guide][rubygems-security-guide]
17
+ 1. Fork the repository
18
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
19
+ 3. Make some fixes.
20
+ 4. Commit your changes (`git commit -am 'Added some feature'`)
21
+ 5. Push to the branch (`git push origin my-new-feature`)
22
+ 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
+ 7. Create new Pull Request.
24
+
25
+ ## Appraisals
26
+
27
+ From time to time the appraisal gemfiles in `gemfiles/` will need to be updated.
28
+ They are created and updated with the commands:
29
+
30
+ NOTE: We run on a [fork][🚎appraisal-fork] of Appraisal.
31
+
32
+ Please upvote the PR for `eval_gemfile` [support][🚎appraisal-eval-gemfile-pr]
33
+
34
+ ```shell
35
+ BUNDLE_GEMFILE=Appraisal.root.gemfile bundle
36
+ BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
37
+ ```
38
+
39
+ ## The Reek List
40
+
41
+ Take a look at the `reek` list which is the file called `REEK` and find something to improve.
42
+
43
+ To refresh the `reek` list:
44
+
45
+ ```bash
46
+ bundle exec reek > REEK
47
+ ```
48
+
49
+ ## Run Tests
50
+
51
+ To run all tests
52
+
53
+ ```bash
54
+ bundle exec rake test
55
+ ```
56
+
57
+ ## Lint It
58
+
59
+ Run all the default tasks, which includes running the gradually autocorrecting linter, `rubocop-gradual`.
60
+
61
+ ```bash
62
+ bundle exec rake
63
+ ```
64
+
65
+ Or just run the linter.
66
+
67
+ ```bash
68
+ bundle exec rubocop_gradual:autocorrect
69
+ ```
27
70
 
28
71
  ## Contributors
29
72
 
30
- See: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors]
73
+ Your picture could be here!
74
+
75
+ [![Contributors][🖐contributors-img]][🖐contributors]
76
+
77
+ Made with [contributors-img][🖐contrib-rocks].
78
+
79
+ Also see GitLab Contributors: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors-gl]
80
+
81
+ ## For Maintainers
82
+
83
+ ### One-time, Per-maintainer, Setup
84
+
85
+ **IMPORTANT**: Your public key for signing gems will need to be picked up by the line in the
86
+ `gemspec` defining the `spec.cert_chain` (check the relevant ENV variables there),
87
+ in order to sign the new release.
88
+ See: [RubyGems Security Guide][🔒️rubygems-security-guide]
89
+
90
+ ### To release a new version:
31
91
 
32
- [comment]: <> (Following links are used by README, CONTRIBUTING)
92
+ 1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check
93
+ 2. Update the version number in `version.rb`
94
+ 3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
95
+ 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
96
+ 5. Run `git push` to trigger the final CI pipeline before release, & merge PRs
97
+ - NOTE: Remember to [check the build][🧪build]!
98
+ 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
99
+ 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
100
+ 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure you will release the latest trunk code
101
+ 9. Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use same timestamp, and generate same checksums
102
+ - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
103
+ - If the echo above has no output, then it didn't work.
104
+ - Note that you'll need the `zsh/datetime` module, if running `zsh`.
105
+ - In `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
106
+ 10. Run `bundle exec rake build`
107
+ 11. Run `bin/checksums` (more context [1][🔒️rubygems-checksums-pr] and [2][🔒️rubygems-guides-pr])
108
+ to create SHA-256 and SHA-512 checksums
109
+ - Checksums will be committed automatically by the script, but not pushed
110
+ 12. Run `bundle exec rake release` which will create a git tag for the version,
111
+ push git commits and tags, and push the `.gem` file to [rubygems.org][💎rubygems]
33
112
 
34
- [conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
35
- [🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
36
113
  [⛳mail-list]: http://groups.google.com/group/oauth-ruby
37
114
  [🚎src-main]: https://gitlab.com/oauth-xx/version_gem
38
- [🏘chat]: https://gitter.im/oauth-xx/version_gem
39
- [rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
40
- [rubygems]: https://rubygems.org
115
+ [🧪build]: https://github.com/oauth-xx/version_gem/actions
116
+ [🏘chat]: https://matrix.to/#/#pboling_version_gem:gitter.im
117
+ [🤝conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
118
+ [🖐contrib-rocks]: https://contrib.rocks
119
+ [🖐contributors]: https://github.com/oauth-xx/version_gem/graphs/contributors
120
+ [🚎contributors-gl]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
121
+ [🖐contributors-img]: https://contrib.rocks/image?repo=oauth-xx/version_gem
122
+ [💎rubygems]: https://rubygems.org
123
+ [🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
124
+ [🔒️rubygems-checksums-pr]: https://github.com/rubygems/rubygems/pull/6022
125
+ [🔒️rubygems-guides-pr]: https://github.com/rubygems/guides/pull/325
126
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
127
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
128
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
129
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
130
+ [🚎appraisal-eval-gemfile-pr]: https://github.com/thoughtbot/appraisal/pull/248
131
+ [🚎appraisal-fork]: https://github.com/pboling/appraisal/tree/galtzo
data/README.md CHANGED
@@ -1,11 +1,43 @@
1
1
  # VersionGem
2
2
 
3
+ [![Version][👽versioni]][👽version]
4
+ [![License: MIT][📄license-img]][📄license-ref]
5
+ [![Downloads Rank][👽dl-ranki]][👽dl-rank]
6
+ [![Open Source Helpers][👽oss-helpi]][👽oss-help]
7
+ [![Depfu][🔑depfui♻️]][🔑depfu]
8
+ [![CodeCov Test Coverage][🔑codecovi♻️]][🔑codecov]
9
+ [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls]
10
+ [![CodeClimate Test Coverage][🔑cc-covi♻️]][🔑cc-cov]
11
+ [![Maintainability][🔑cc-mnti♻️]][🔑cc-mnt]
12
+ [![CI Supported Build][🚎6-s-wfi]][🚎6-s-wf]
13
+ [![CI Legacy Build][🚎4-lg-wfi]][🚎4-lg-wf]
14
+ [![CI Unsupported Build][🚎7-us-wfi]][🚎7-us-wf]
15
+ [![CI Heads Build][🚎3-hd-wfi]][🚎3-hd-wf]
16
+ [![CI Ancient Build][🚎1-an-wfi]][🚎1-an-wf]
17
+ [![CI Hoary Build][🚎8-ho-wfi]][🚎8-ho-wf]
18
+ [![CI Coverage Build][🚎2-cov-wfi]][🚎2-cov-wf]
19
+ [![CI Style Build][🚎5-st-wfi]][🚎5-st-wf]
20
+
21
+ ---
22
+
23
+ [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
24
+ [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
25
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme]
26
+ [![Polar Shield][🖇polar-img]][🖇polar]
27
+ [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
28
+ [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
29
+
3
30
  ## Alternatives
4
31
 
5
32
  This gem has a very niche purpose, which is:
6
33
 
7
- 1. providing introspection of a `Version` module based on a `Version::VERSION` constant string,
8
- 2. while not interfering with `gemspec` parsing where the `VERSION` string is traditionally used.
34
+ 1. providing introspection of a `Version` module based on a `VERSION` constant string within it,
35
+ 2. while not interfering with `gemspec` parsing where the `VERSION` string is traditionally used,
36
+ 3. allowing 100% test coverage of Ruby code, including the `Version` module.
37
+
38
+ As proof in the pudding, this gem achieves 100% test coverage for lines and branches,
39
+ all 77 and 2 of them, respectively; coverage enabled in part by patterns from this library.
40
+ You can make it happen for your library too!
9
41
 
10
42
  If this isn't **precisely** your use case you may be better off looking at
11
43
  _[versionaire](https://www.alchemists.io/projects/versionaire)_, a wonderful, performant, well-maintained,
@@ -31,134 +63,15 @@ This library was extracted from the gem _[oauth2](https://gitlab.com/oauth-xx/oa
31
63
 
32
64
  This gem has no runtime dependencies.
33
65
 
34
- <!--
35
- Numbering rows and badges in each row as a visual "database" lookup,
36
- as the table is extremely dense, and it can be very difficult to find anything
37
- Putting one on each row here, to document the emoji that should be used, and for ease of copy/paste.
38
-
39
- row #s:
40
- 1️⃣
41
- 2️⃣
42
- 3️⃣
43
- 4️⃣
44
- 5️⃣
45
- 6️⃣
46
- 7️⃣
47
-
48
- badge #s:
49
- ⛳️
50
- 🖇
51
- 🏘
52
- 🚎
53
- 🖐
54
- 🧮
55
- 📗
56
-
57
- appended indicators:
58
- ♻️ - URL needs to be updated from SAAS integration. Find / Replace is insufficient.
59
- -->
60
-
61
- | | Project | bundle add version_gem |
62
- |:----|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
63
- | 1️⃣ | name, license, docs, standards | [![RubyGems.org][⛳️name-img]][⛳️gem] [![License: MIT][🖇src-license-img]][🖇src-license] [![RubyDoc.info][🚎yard-img]][🚎yard] [![SemVer 2.0.0][🧮semver-img]][🧮semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] |
64
- | 2️⃣ | version & activity | [![Gem Version][⛳️version-img]][⛳️gem] [![Total Downloads][🖇DL-total-img]][⛳️gem] [![Download Rank][🏘DL-rank-img]][⛳️gem] [![Source Code][🚎src-main-img]][🚎src-main] [![Open PRs][🖐prs-o-img]][🖐prs-o] [![Closed PRs][🧮prs-c-img]][🧮prs-c] |
65
- | 3️⃣ | maintanence & linting | [![Maintainability][⛳cclim-maint-img♻️]][⛳cclim-maint] [![Helpers][🖇triage-help-img]][🖇triage-help] [![Depfu][🏘depfu-img♻️]][🏘depfu♻️] [![Contributors][🚎contributors-img]][🚎contributors] [![Style][🖐style-wf-img]][🖐style-wf] [![Kloc Roll][🧮kloc-img]][🧮kloc] |
66
- | 4️⃣ | testing | [![Supported][🏘sup-wf-img]][🏘sup-wf] [![Heads][🚎heads-wf-img]][🚎heads-wf] [![Unofficial Support][🖐uns-wf-img]][🖐uns-wf] <!--[![MacOS][🧮mac-wf-img]][🧮mac-wf] [![Windows][📗win-wf-img]][📗win-wf]--> |
67
- | 5️⃣ | coverage & security | [![CodeClimate][⛳cclim-cov-img♻️]][⛳cclim-cov] [![CodeCov][🖇codecov-img♻️]][🖇codecov] [![Coveralls][🏘coveralls-img]][🏘coveralls] [![Security Policy][🚎sec-pol-img]][🚎sec-pol] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Code Coverage][🧮cov-wf-img]][🧮cov-wf] |
68
- | 6️⃣ | resources | [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Wiki][🖐wiki-img]][🖐wiki] |
69
- | 7️⃣ | spread 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Tweet @ Peter][🏘tweet-img]][🏘tweet] [🌏][aboutme] [👼][angelme] [💻][coderme] |
70
-
71
- <!--
72
- The link tokens in the following sections should be kept ordered by the row and badge numbering scheme
73
- -->
74
-
75
- <!-- 1️⃣ name, license, docs -->
76
- [⛳️gem]: https://rubygems.org/gems/version_gem
77
- [⛳️name-img]: https://img.shields.io/badge/name-version_gem-brightgreen.svg?style=flat
78
- [🖇src-license]: https://opensource.org/licenses/MIT
79
- [🖇src-license-img]: https://img.shields.io/badge/License-MIT-green.svg
80
- [🚎yard]: https://www.rubydoc.info/gems/version_gem
81
- [🚎yard-img]: https://img.shields.io/badge/documentation-rubydoc-brightgreen.svg?style=flat
82
- [🧮semver]: http://semver.org/
83
- [🧮semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
84
- [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
85
- [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
86
-
87
- <!-- 2️⃣ version & activity -->
88
- [⛳️version-img]: http://img.shields.io/gem/v/version_gem.svg
89
- [🖇DL-total-img]: https://img.shields.io/gem/dt/version_gem.svg
90
- [🏘DL-rank-img]: https://img.shields.io/gem/rt/version_gem.svg
91
- [🚎src-main]: https://gitlab.com/oauth-xx/version_gem
92
- [🚎src-main-img]: https://img.shields.io/badge/source-gitlab-brightgreen.svg?style=flat
93
- [🖐prs-o]: https://gitlab.com/oauth-xx/version_gem/-/merge_requests
94
- [🖐prs-o-img]: https://img.shields.io/github/issues-pr/pboling/version_gem
95
- [🧮prs-c]: https://github.com/pboling/version_gem/pulls?q=is%3Apr+is%3Aclosed
96
- [🧮prs-c-img]: https://img.shields.io/github/issues-pr-closed/pboling/version_gem
97
-
98
- <!-- 3️⃣ maintanence & linting -->
99
- [⛳cclim-maint]: https://codeclimate.com/github/pboling/version_gem/maintainability
100
- [⛳cclim-maint-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/maintainability
101
- [🖇triage-help]: https://www.codetriage.com/pboling/version_gem
102
- [🖇triage-help-img]: https://www.codetriage.com/pboling/version_gem/badges/users.svg
103
- [🏘depfu♻️]: https://depfu.com/github/pboling/version_gem?project_id=35803
104
- [🏘depfu-img♻️]: https://badges.depfu.com/badges/5d8943de6cfdf1ee048ad6d907f3e35b/count.svg
105
- [🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
106
- [🚎contributors-img]: https://img.shields.io/github/contributors-anon/pboling/version_gem
107
- [🖐style-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/style.yml
108
- [🖐style-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/style.yml/badge.svg
109
- [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
110
- [🧮kloc-img]: https://img.shields.io/tokei/lines/github.com/pboling/version_gem
111
-
112
- <!-- 4️⃣ testing -->
113
- [🏘sup-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/supported.yml
114
- [🏘sup-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/supported.yml/badge.svg
115
- [🚎heads-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/heads.yml
116
- [🚎heads-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/heads.yml/badge.svg
117
- [🖐uns-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/unsupported.yml
118
- [🖐uns-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/unsupported.yml/badge.svg
119
- [🧮mac-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/macos.yml
120
- [🧮mac-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/macos.yml/badge.svg
121
- [📗win-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/windows.yml
122
- [📗win-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/windows.yml/badge.svg
123
-
124
- <!-- 5️⃣ coverage & security -->
125
- [⛳cclim-cov]: https://codeclimate.com/github/pboling/version_gem/test_coverage
126
- [⛳cclim-cov-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/test_coverage
127
- [🖇codecov-img♻️]: https://codecov.io/gh/pboling/version_gem/branch/main/graph/badge.svg?token=79c3X4vtfO
128
- [🖇codecov]: https://codecov.io/gh/pboling/version_gem
129
- [🏘coveralls]: https://coveralls.io/github/pboling/version_gem?branch=main
130
- [🏘coveralls-img]: https://coveralls.io/repos/github/pboling/version_gem/badge.svg?branch=main
131
- [🚎sec-pol]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
132
- [🚎sec-pol-img]: https://img.shields.io/badge/security-policy-brightgreen.svg?style=flat
133
- [🖐codeQL]: https://github.com/pboling/version_gem/security/code-scanning
134
- [🖐codeQL-img]: https://github.com/oauth-xx/version_gem/actions/workflows/codeql-analysis.yml/badge.svg
135
- [🧮cov-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/coverage.yml
136
- [🧮cov-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/coverage.yml/badge.svg
137
-
138
- <!-- 6️⃣ resources -->
139
- [🖇codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
140
- [🖇codementor-img]: https://cdn.codementor.io/badges/get_help_github.svg
141
- [🏘chat]: https://gitter.im/oauth-xx/version_gem
142
- [🏘chat-img]: https://img.shields.io/gitter/room/oauth-xx/version_gem.svg
143
- [🚎blog]: http://www.railsbling.com/tags/version_gem/
144
- [🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
145
- [🖐wiki]: https://gitlab.com/oauth-xx/version_gem/-/wikis/home
146
- [🖐wiki-img]: https://img.shields.io/badge/wiki-examples-brightgreen.svg?style=flat
147
-
148
- <!-- 7️⃣ spread 💖 -->
149
- [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
150
- [⛳liberapay]: https://liberapay.com/pboling/donate
151
- [🖇sponsor-img]: https://img.shields.io/badge/sponsor-pboling.svg?style=social&logo=github
152
- [🖇sponsor]: https://github.com/sponsors/pboling
153
- [🏘tweet-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
154
- [🏘tweet]: http://twitter.com/galtzo
155
-
156
- <!-- Maintainer Contact Links -->
157
- [railsbling]: http://www.railsbling.com
158
- [peterboling]: http://www.peterboling.com
159
- [aboutme]: https://about.me/peter.boling
160
- [angelme]: https://angel.co/peter-boling
161
- [coderme]:http://coderwall.com/pboling
66
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
67
+ |--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
68
+ | ruby 3 compat | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![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-3.4i]][🚎6-s-wf] |
69
+ | ruby 2 compat | [![Ruby 2.2 Compat][💎ruby-2.2i]][🚎8-ho-wf] [![Ruby 2.3 Compat][💎ruby-2.3i]][🚎1-an-wf] [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎1-an-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎1-an-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎7-us-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
70
+ | documentation | [![Documentation on Github.com][📜docs-gh-img]][homepage] `or` [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] `or` [![HEAD on RubyDoc.info][📜docs-head-rd-img]][🚎yard-head] `or` [![Wiki][📜wiki-img]][📜wiki] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
71
+ | compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] |
72
+ | 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] |
73
+ | enterprise support | [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift] (for _this and all your other_ FLOSS dependencies; btw, TideLift is now part of [Sonar](https://blog.tidelift.com/tidelift-joins-sonar)!) |
74
+ | `...` 💖 | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] [🌏][💖💁🏼‍♂️aboutme] |
162
75
 
163
76
  ## Installation
164
77
 
@@ -217,14 +130,33 @@ MyLib::Version.to_a # => [0, 1, 0]
217
130
  MyLib::Version.to_h # => { major: 0, minor: 1, patch: 0, pre: "" }
218
131
  ```
219
132
 
220
- ### Side benefit
133
+ ### Side benefit #1
134
+
135
+ You can reference the version from your gemspec, keeping the version string DRY,
136
+ *and* still get accurate code coverage!
137
+
138
+ ```ruby
139
+ # Get the GEMFILE_VERSION without *require* "my_gem/version", for code coverage accuracy
140
+ # See: https://github.com/simplecov-ruby/simplecov/issues/557#issuecomment-2630782358
141
+ # Kernel.load because load is overloaded in RubyGems during gemspec evaluation
142
+ Kernel.load("lib/my_gem/version.rb")
143
+ gem_version = MyGem::Version::VERSION
144
+ MyGem::Version.send(:remove_const, :VERSION)
145
+
146
+ Gem::Specification.new do |spec|
147
+ # ...
148
+ spec.version = gem_version
149
+ end
150
+ ```
151
+
152
+ ### Side benefit #2
221
153
 
222
154
  Your `version.rb` file now abides the Ruby convention of directory / path matching the namespace / class!
223
155
 
224
156
  ### Zietwerk
225
157
 
226
158
  The pattern of `version.rb` breaking the ruby convention of directory / path matching the namespace / class
227
- is so entrenched that the `zeitwerk` library has a special carve-out for it.
159
+ is so entrenched that the `zeitwerk` library has a special carve-out for it. 🥺
228
160
  RubyGems using this "bad is actually good" pattern are encouraged to use `Zeitwerk.for_gem`.
229
161
 
230
162
  **Do not do that ^** if you use this gem.
@@ -263,8 +195,9 @@ end
263
195
 
264
196
  #### Complex Zeitwerk Example
265
197
 
198
+ Maybe you would like to contribute one?
266
199
 
267
- #### Query Ruby Version (as of version 1.2.0)
200
+ #### Query Ruby Version (as of version 1.1.2)
268
201
 
269
202
  In Continuous Integration environments for libraries that run against many versions of Ruby,
270
203
  I often need to configure things discretely per Ruby version, and doing so forced me to repeat
@@ -327,43 +260,75 @@ RSpec.describe(MyLib::Version) do
327
260
  end
328
261
  ```
329
262
 
330
- ## Development
263
+ ## 🔐 Security
331
264
 
332
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
265
+ See [SECURITY.md][🔐security].
333
266
 
334
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
267
+ ## 🤝 Contributing
335
268
 
336
- ## Contributing
269
+ If you need some ideas of where to help, you could work on adding more code coverage,
270
+ or if it is already 💯 (see [below](#code-coverage)) then check [issues][🤝issues], or [PRs][🤝pulls],
271
+ or use the gem and think about how it could be better.
337
272
 
338
- See [CONTRIBUTING.md][contributing]
273
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
339
274
 
340
- ## Contributors
275
+ Also, see [CONTRIBUTING.md][🤝contributing].
341
276
 
342
- [![Contributors](https://contrib.rocks/image?repo=pboling/version_gem)]("https://gitlab.com/oauth-xx/version_gem/-/graphs/main")
277
+ ### Code Coverage
343
278
 
344
- Made with [contributors-img](https://contrib.rocks).
279
+ [![Coverage Graph][🔑codecov-g]][🔑codecov]
345
280
 
346
- ## License
281
+ ## 🌈 Contributors
347
282
 
348
- The gem is available as open source under the terms of
349
- the [MIT License][license] [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)][license-ref].
350
- See [LICENSE][license] for the official [Copyright Notice][copyright-notice-explainer].
283
+ [![Contributors][🖐contributors-img]][🖐contributors]
284
+
285
+ Made with [contributors-img][🖐contrib-rocks].
286
+
287
+ Also see GitLab Contributors: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors-gl]
288
+
289
+ ## ⭐️ Star History
351
290
 
352
- * Copyright (c) 2022 - 2023 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
291
+ <a href="https://star-history.com/#oauth-xx/version_gem&Date">
292
+ <picture>
293
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oauth-xx/version_gem&type=Date&theme=dark" />
294
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oauth-xx/version_gem&type=Date" />
295
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oauth-xx/version_gem&type=Date" />
296
+ </picture>
297
+ </a>
353
298
 
354
- ## Code of Conduct
299
+ ## 🪇 Code of Conduct
355
300
 
356
- Everyone interacting in the VersionGem project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md).
301
+ Everyone interacting in this project's codebases, issue trackers,
302
+ chat rooms and mailing lists is expected to follow the [code of conduct][🪇conduct].
357
303
 
358
- ## Versioning
304
+ ## 📌 Versioning
359
305
 
360
- This library aims to adhere to [Semantic Versioning 2.0.0][🧮semver]. Violations of this scheme should be reported as
361
- bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be
362
- immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new
363
- major versions.
306
+ This Library adheres to [![Semantic Versioning 2.0.0][📌semver-img]][📌semver].
307
+ Violations of this scheme should be reported as bugs.
308
+ Specifically, if a minor or patch version is released that breaks backward compatibility,
309
+ a new version should be immediately released that restores compatibility.
310
+ Breaking changes to the public API will only be introduced with new major versions.
364
311
 
365
- As a result of this policy, you can (and should) specify a dependency on this gem using
366
- the [Pessimistic Version Constraint][pvc] with two digits of precision.
312
+ ### 📌 Is "Platform Support" part of the public API?
313
+
314
+ Yes. But I'm obligated to include notes...
315
+
316
+ SemVer should, but doesn't explicitly, say that dropping support for specific Platforms
317
+ is a *breaking change* to an API.
318
+ It is obvious to many, but not all, and since the spec is silent, the bike shedding is endless.
319
+
320
+ > dropping support for a platform is both obviously and objectively a breaking change
321
+
322
+ - Jordan Harband (@ljharb) [in SemVer issue 716][📌semver-breaking]
323
+
324
+ To get a better understanding of how SemVer is intended to work over a project's lifetime,
325
+ read this article from the creator of SemVer:
326
+
327
+ - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
328
+
329
+ As a result of this policy, and the interpretive lens used by the maintainer,
330
+ you can (and should) specify a dependency on these libraries using
331
+ the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
367
332
 
368
333
  For example:
369
334
 
@@ -371,36 +336,151 @@ For example:
371
336
  spec.add_dependency("version_gem", "~> 1.1")
372
337
  ```
373
338
 
374
- ## Security
375
-
376
- See [SECURITY.md](https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md).
377
-
378
- [aboutme]: https://about.me/peter.boling
379
- [actions]: https://github.com/oauth-xx/version_gem/actions
380
- [angelme]: https://angel.co/peter-boling
381
- [blogpage]: http://www.railsbling.com/tags/version_gem/
382
- [codecov_coverage]: https://codecov.io/gh/oauth-xx/version_gem
383
- [code_triage]: https://www.codetriage.com/oauth-xx/version_gem
384
- [chat]: https://gitter.im/oauth-xx/version_gem?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
385
- [climate_coverage]: https://codeclimate.com/github/oauth-xx/version_gem/test_coverage
386
- [climate_maintainability]: https://codeclimate.com/github/oauth-xx/version_gem/maintainability
387
- [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
388
- [conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
389
- [contributing]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CONTRIBUTING.md
390
- [devto]: https://dev.to/galtzo
391
- [documentation]: https://rubydoc.info/github/oauth-xx/version_gem/main
392
- [followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
393
- [gh_sponsors]: https://github.com/sponsors/pboling
394
- [issues]: https://github.com/oauth-xx/version_gem/issues
395
- [liberapay_donate]: https://liberapay.com/pboling/donate
396
- [license]: LICENSE.txt
397
- [license-ref]: https://opensource.org/licenses/MIT
398
- [license-img]: https://img.shields.io/badge/License-MIT-green.svg
399
- [peterboling]: http://www.peterboling.com
400
- [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
339
+ See [CHANGELOG.md][📌changelog] for list of releases.
340
+
341
+ ## 📄 License
342
+
343
+ The gem is available as open source under the terms of
344
+ the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
345
+ See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
346
+
347
+ ### © Copyright
348
+
349
+ * Copyright (c) 2022 - 2025 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
350
+
351
+ ## 🤑 One more thing
352
+
353
+ You made it to the bottom of the page,
354
+ so perhaps you'll indulge me for another 20 seconds.
355
+ I maintain many dozens of gems, including this one,
356
+ because I want Ruby to be a great place for people to solve problems, big and small.
357
+ Please consider supporting my efforts via the giant yellow link below,
358
+ or one of the others at the head of this README.
359
+
360
+ [![Buy me a latte][🖇buyme-img]][🖇buyme]
361
+
362
+ [🏘chat]: https://gitter.im/oauth-xx/version_gem
363
+ [🏘chat-img]: https://img.shields.io/gitter/room/oauth-xx/version_gem.svg
364
+ [⛳️gem-namespace]: https://rubygems.org/gems/version_gem
365
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-VersionGem-brightgreen.svg?style=flat
366
+ [⛳️gem-name]: https://rubygems.org/gems/version_gem
367
+ [⛳️name-img]: https://img.shields.io/badge/name-version__gem-brightgreen.svg?style=flat
368
+ [🚎blog]: http://www.railsbling.com/tags/version_gem
369
+ [🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
370
+ [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
371
+ [💖🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-blue?style=plastic&logo=linkedin
372
+ [💖✌️wellfound]: https://angel.co/u/peter-boling
373
+ [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=plastic&logo=wellfound
374
+ [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
375
+ [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=plastic&logo=crunchbase
376
+ [💖🐘ruby-mast]: https://ruby.social/@galtzo
377
+ [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=plastic&logo=mastodon&label=Ruby%20%40galtzo
378
+ [💖🌳linktree]: https://linktr.ee/galtzo
379
+ [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=plastic&logo=linktree
380
+ [💖💁🏼‍♂️devto]: https://dev.to/galtzo
381
+ [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=plastic&logo=devdotto&logoColor=white
382
+ [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
383
+ [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
384
+ [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-6FDA44?style=for-the-badge&logo=Upwork&logoColor=white
385
+ [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
386
+ [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get%20Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
387
+ [🏙️entsup-tidelift]: https://tidelift.com/
388
+ [🏙️entsup-tidelift-img]: https://img.shields.io/badge/TideLift-Enterprise%20Support-1abc9c?style=for-the-badge&logo=TideLift&logoColor=white
389
+ [💁🏼‍♂️peterboling]: http://www.peterboling.com
390
+ [💁🏼‍♂️railsbling]: http://www.railsbling.com
391
+ [📜docs-gh-img]: https://img.shields.io/badge/Github-6FDA44?style=for-the-badge&logo=Github&logoColor=white
392
+ [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current%20Release-6FDA44?style=for-the-badge&logo=RubyDoc&logoColor=white
393
+ [📜docs-head-rd-img]: https://img.shields.io/badge/RubyDoc-HEAD-6FDA44?style=for-the-badge&logo=RubyDoc&logoColor=white
394
+ [📜wiki]: https://gitlab.com/oauth-xx/version_gem/-/wikis/home
395
+ [📜wiki-img]: https://img.shields.io/badge/wiki-examples-brightgreen.svg?style=flat
396
+ [👽dl-rank]: https://rubygems.org/gems/version_gem
397
+ [👽dl-ranki]: https://img.shields.io/gem/rd/version_gem.svg
398
+ [👽oss-help]: https://www.codetriage.com/oauth-xx/version_gem
399
+ [👽oss-helpi]: https://www.codetriage.com/oauth-xx/version_gem/badges/users.svg
400
+ [👽version]: https://rubygems.org/gems/version_gem
401
+ [👽versioni]: https://img.shields.io/gem/v/version_gem.svg
402
+ [🔑cc-mnt]: https://codeclimate.com/github/oauth-xx/version_gem/maintainability
403
+ [🔑cc-mnti♻️]: https://api.codeclimate.com/v1/badges/e26c543320ca0d14e871/maintainability
404
+ [🔑cc-cov]: https://codeclimate.com/github/oauth-xx/version_gem/test_coverage
405
+ [🔑cc-covi♻️]: https://api.codeclimate.com/v1/badges/e26c543320ca0d14e871/test_coverage
406
+ [🔑codecov]: https://codecov.io/gh/oauth-xx/version_gem
407
+ [🔑codecovi♻️]: https://codecov.io/gh/oauth-xx/version_gem/branch/main/graph/badge.svg?token=cc6UdZCpAL
408
+ [🔑coveralls]: https://coveralls.io/github/oauth-xx/version_gem?branch=main
409
+ [🔑coveralls-img]: https://coveralls.io/repos/github/oauth-xx/version_gem/badge.svg?branch=main
410
+ [🔑depfu]: https://depfu.com/github/oauth-xx/version_gem
411
+ [🔑depfui♻️]: https://badges.depfu.com/badges/6c9b45362951b872127f9e46d39bed76/count.svg
412
+ [🖐codeQL]: https://github.com/oauth-xx/version_gem/security/code-scanning
413
+ [🖐codeQL-img]: https://github.com/oauth-xx/version_gem/actions/workflows/codeql-analysis.yml/badge.svg
414
+ [🚎1-an-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/ancient.yml
415
+ [🚎1-an-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/ancient.yml/badge.svg
416
+ [🚎2-cov-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/coverage.yml
417
+ [🚎2-cov-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/coverage.yml/badge.svg
418
+ [🚎3-hd-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/heads.yml
419
+ [🚎3-hd-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/heads.yml/badge.svg
420
+ [🚎4-lg-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/legacy.yml
421
+ [🚎4-lg-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/legacy.yml/badge.svg
422
+ [🚎5-st-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/style.yml
423
+ [🚎5-st-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/style.yml/badge.svg
424
+ [🚎6-s-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/supported.yml
425
+ [🚎6-s-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/supported.yml/badge.svg
426
+ [🚎7-us-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/unsupported.yml
427
+ [🚎7-us-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/unsupported.yml/badge.svg
428
+ [🚎8-ho-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/hoary.yml
429
+ [🚎8-ho-wfi]: https://github.com/oauth-xx/version_gem/actions/workflows/hoary.yml/badge.svg
430
+ [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
431
+ [⛳liberapay]: https://liberapay.com/pboling/donate
432
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
433
+ [🖇sponsor]: https://github.com/sponsors/pboling
434
+ [🖇polar-img]: https://polar.sh/embed/seeks-funding-shield.svg?org=pboling
435
+ [🖇polar]: https://polar.sh/pboling
436
+ [🖇kofi-img]: https://img.shields.io/badge/buy%20me%20coffee-donate-yellow.svg
437
+ [🖇kofi]: https://ko-fi.com/O5O86SNP4
438
+ [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-yellow.svg
439
+ [🖇patreon]: https://patreon.com/galtzo
440
+ [💎ruby-2.2i]: https://img.shields.io/badge/Ruby-2.2-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
441
+ [💎ruby-2.3i]: https://img.shields.io/badge/Ruby-2.3-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
442
+ [💎ruby-2.4i]: https://img.shields.io/badge/Ruby-2.4-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
443
+ [💎ruby-2.5i]: https://img.shields.io/badge/Ruby-2.5-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
444
+ [💎ruby-2.6i]: https://img.shields.io/badge/Ruby-2.6-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
445
+ [💎ruby-2.7i]: https://img.shields.io/badge/Ruby-2.7-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
446
+ [💎ruby-3.0i]: https://img.shields.io/badge/Ruby-3.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
447
+ [💎ruby-3.1i]: https://img.shields.io/badge/Ruby-3.1-CC342D?style=for-the-badge&logo=ruby&logoColor=white
448
+ [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
449
+ [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
450
+ [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
451
+ [🤝issues]: https://github.com/oauth-xx/version_gem/issues
452
+ [🤝pulls]: https://github.com/oauth-xx/version_gem/pulls
453
+ [🤝contributing]: CONTRIBUTING.md
454
+ [🔑codecov-g]: https://codecov.io/gh/oauth-xx/version_gem/graphs/tree.svg?token=cc6UdZCpAL
455
+ [🖐contrib-rocks]: https://contrib.rocks
456
+ [🖐contributors]: https://github.com/oauth-xx/version_gem/graphs/contributors
457
+ [🖐contributors-img]: https://contrib.rocks/image?repo=oauth-xx/version_gem
458
+ [🚎contributors-gl]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
459
+ [🪇conduct]: CODE_OF_CONDUCT.md
460
+ [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
461
+ [📌semver]: http://semver.org/
462
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
463
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
464
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
465
+ [📌changelog]: CHANGELOG.md
466
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
467
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
468
+ [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
469
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.077-FFDD67.svg?style=flat
470
+ [🔐security]: SECURITY.md
471
+ [🔐security-img]: https://img.shields.io/badge/security-policy-brightgreen.svg?style=flat
472
+ [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
473
+ [📄license]: LICENSE.txt
474
+ [📄license-ref]: https://opensource.org/licenses/MIT
475
+ [📄license-img]: https://img.shields.io/badge/License-MIT-green.svg
476
+ [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
477
+ [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-brightgreen.svg?style=flat
401
478
  [railsbling]: http://www.railsbling.com
402
- [rubygems]: https://rubygems.org/gems/version_gem
403
- [security]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
404
- [semver]: http://semver.org/
405
- [source]: https://gitlab.com/oauth-xx/version_gem
406
- [tweetme]: http://twitter.com/galtzo
479
+ [peterboling]: http://www.peterboling.com
480
+ [bundle-group-pattern]: https://gist.github.com/pboling/4564780
481
+ [🚎yard-current]: http://rubydoc.info/gems/version_gem
482
+ [🚎yard-head]: https://rubydoc.info/github/oauth-xx/version_gem/main
483
+ [homepage]: https://github.com/oauth-xx/version_gem
484
+ [🖇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
485
+ [🖇buyme]: https://www.buymeacoffee.com/pboling
486
+ [🖇buyme-small-img]: https://img.shields.io/badge/Buy--Me--A--Coffee-✓-brightgreen.svg?style=flat
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module VersionGem
2
4
  # Public API of this library
3
5
  module Api
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module VersionGem
2
4
  class Error < RuntimeError; end
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module VersionGem
2
4
  # Helpers for library CI integration against many different versions of Ruby
3
5
  module Ruby
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VersionGem
4
4
  module Version
5
- VERSION = "1.1.3"
5
+ VERSION = "1.1.5"
6
6
  # This would work in this gem, but not in external libraries,
7
7
  # because version files are loaded in Gemspecs before bundler
8
8
  # has a chance to load dependencies.
data/lib/version_gem.rb CHANGED
File without changes
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,42 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: version_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain:
11
10
  - |
12
11
  -----BEGIN CERTIFICATE-----
13
12
  MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
14
13
  ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0yMjA5MTgyMzEyMzBaFw0yMzA5MTgyMzEyMzBaMEMxFTATBgNVBAMM
14
+ A2NvbTAeFw0yNDA5MjAwODU4NDJaFw0yNTA5MjAwODU4NDJaMEMxFTATBgNVBAMM
16
15
  DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
17
- LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2Dn1GM3W
18
- 8K2/rvN1zz+06bQMcxD16ZKTihVwi7Pb1v3T98rM4Omnxohm3s+CwpDWGeiB9pj6
19
- 0I/CTce0e4e3s8GKJSOrg93veImPSoH2PfsMsRsuB8wtqyiOCjLbF5o6S29x87r0
20
- LA5EawH+Lh4xqrkkPjdffsmLk7TaCig/vlmNvnzxXKBdey/X/aEJZXzzBiWRfVdh
21
- O1fmMbVKyieGv9HK7+pLotIoT08bjDv8NP6V7zZslwQRqW27bQc6cqC2LGIbTYO3
22
- 3jt1kQxfMWmhOictS6SzG9VtKSrXf0L4Neq0Gh7CLBZBvJFWJYZPfb92YNITDbd8
23
- emPOAQlXXNMN4mMXsEqtEhCPZRMnmwO+fOk/cC4AyglKi9lnQugCQoFV1XDMZST/
24
- CYbzdQyadOdPDInTntG6V+Uw51d2QGXZ6PDDfrx9+toc/3sl5h68rCUGgE6Q3jPz
25
- srinqmBsxv2vTpmd4FjmiAtEnwH5/ooLpQYL8UdAjEoeysxS3AwIh+5dAgMBAAGj
26
- fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQWU6D156a2cle+
27
- lb5RBfvVXlxTwjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
16
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAjrxsKObI
17
+ rFQjBpzvVfqnT6JlF8/pkpgEEjFh7ex3zIerfuHzZvSrx+sRDGxQ8koWWG0Wjx8s
18
+ wkBZ5dIqvl0g3sWP5asa28u/09opxkQTC1Ao77iYxcBcwoCe/Dpf1m4Q/m6oH0kL
19
+ 2AZVNJQL3UkqAcLS0tsj/s/jAKnVlsaZZE5gQiIIi8HtkvSsajtx+Cq2AxDvcWvV
20
+ /CliD+pmzYkTjvjwGm8yeyFGGGgrisJMryiZdZlkTwrQSjCzudIKbLeuG8Se4JTD
21
+ TAcT+rPubr27v1jwmtIjtiot3rf4nof7LHLb122a/0VR7cC7xPLnXw0Cq1BShvoq
22
+ /GKRdSwMNinTOGkFTK1gKnjN+3iD4zyXU3XO3CXoTr+Ju8fXPN1x4tpOMgbv8dme
23
+ WbcQMOH9ZjmA5w0bSVRL1c3NhRRpUzrKTNXBEvqOyWjUnintxWKj+cRXx+z+dUgI
24
+ dL3kj68fcsiTgl75In3C485pnCMmq1eLuVoiy3jkLNOn2lHeLt9ZK63LAgMBAAGj
25
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRhfc+2UaVYd74p
26
+ yJ1JclGiUYN8+jAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
28
27
  A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
29
- ggGBAJ4SqhPlgUiLYIrphGXIaxXScHyvx4kixuvdrwhI4VoQV2qXvO7R6ZjOXVwX
30
- f/z84BWPiTZ8lzThPbt1UV/BGwkvLw9I4RjOdzvUz3J42j9Ly6q63isall07bo3F
31
- QWe/OBvIMBF1IbjC3q5vKPg4rq8+TkNRJNoE86U2gfR+PkW3jYYs9uiy0GloHDCP
32
- k5xgaj0vSL0Uy5mTOPdk3K6a/sUGZyYniWK05zdhIi956ynhfGaFO988FFdVw5Jq
33
- LHtXfIpAU8F7ES04syZSslxOluw7VlcSKyRdVIr737J92ZTduppB4PRGSKRgBsWV
34
- hXTahRE72Kyw53Q7FAuzF3v102WxAAQ7BuMjW+MyCUT75fwPm3W4ELPL8HYkNGE7
35
- 2oA5CPghFitRnvYS3GNrDG+9bNiRMEskeaBYwZ9UgReBQIwGYVj7LZk3UhiAsn44
36
- gwGrEXGQGDZ0NIgBcmvMOqlXjkGQwQvugKycJ024z89+fz2332vdZIKTrSxJrXGk
37
- 4/bR9A==
28
+ ggGBAA4fLU2+mQ++jBhVM2IeyvQdw1nm+0thkH4Ldv8ZOBm5ZxCPGIMoYliDDzg4
29
+ 4JDFxZR1wR4sdrz/K5tWtEkN23SKzopwbNb1NIQRSLQ7nOoc+4bkuz9xwKinmIvF
30
+ D+5qsl2S27WLKFreMDtGoh0CREIMBUxU4rGTh0gtzmweGR+fnOShg4Jo0kxrjU5h
31
+ uYk/uVE+bn/jOEGs43GvKXZLyshpBrZjQ+ArbvxDht5t35zbSxerbUxUPZUbXUCW
32
+ tTyh38a9UYjAAHvnh6Y4Fi9wd4/pGNsektrzB3z/zlVj4YF2TMLX9XfNJWEGRGpO
33
+ sSkLYdtEX1WQAmuZtActVW2cL3HdQaRbiv7VbfpA0eSk0ZdZHvBCl516ZZu10uX6
34
+ 82W1mg6fuezdpeBOiXwrEbZSt/oGiF4V511F6nd55p0okwHc/6nS10F/3aKJ4gwC
35
+ I5o+DRfXQHqKucx1ldFHvI2rE/kSCWqGTHN2eyu1sqCPeOoIMxrltJhaejKPkxqj
36
+ zaF9Og==
38
37
  -----END CERTIFICATE-----
39
- date: 2023-06-05 00:00:00.000000000 Z
38
+ date: 2025-02-22 00:00:00.000000000 Z
40
39
  dependencies:
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: rspec
@@ -44,14 +43,14 @@ dependencies:
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '3.12'
46
+ version: '3.13'
48
47
  type: :development
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '3.12'
53
+ version: '3.13'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: rspec-block_is_expected
57
56
  requirement: !ruby/object:Gem::Requirement
@@ -80,27 +79,19 @@ dependencies:
80
79
  - - "~>"
81
80
  - !ruby/object:Gem::Version
82
81
  version: '13.0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.14'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.14'
97
82
  description: Versions are good. Versions are cool. Versions will win.
98
83
  email:
99
84
  - peter.boling@gmail.com
100
85
  - oauth-ruby@googlegroups.com
101
86
  executables: []
102
87
  extensions: []
103
- extra_rdoc_files: []
88
+ extra_rdoc_files:
89
+ - CHANGELOG.md
90
+ - CODE_OF_CONDUCT.md
91
+ - CONTRIBUTING.md
92
+ - LICENSE.txt
93
+ - README.md
94
+ - SECURITY.md
104
95
  files:
105
96
  - CHANGELOG.md
106
97
  - CODE_OF_CONDUCT.md
@@ -120,16 +111,22 @@ licenses:
120
111
  - MIT
121
112
  metadata:
122
113
  homepage_uri: https://gitlab.com/oauth-xx/version_gem
123
- source_code_uri: https://gitlab.com/oauth-xx/version_gem/-/tree/v1.1.3
124
- changelog_uri: https://gitlab.com/oauth-xx/version_gem/-/blob/v1.1.3/CHANGELOG.md
114
+ source_code_uri: https://gitlab.com/oauth-xx/version_gem/-/tree/v1.1.5
115
+ changelog_uri: https://gitlab.com/oauth-xx/version_gem/-/blob/v1.1.5/CHANGELOG.md
125
116
  bug_tracker_uri: https://gitlab.com/oauth-xx/version_gem/-/issues
126
- documentation_uri: https://www.rubydoc.info/gems/version_gem/1.1.3
117
+ documentation_uri: https://www.rubydoc.info/gems/version_gem/1.1.5
127
118
  wiki_uri: https://gitlab.com/oauth-xx/version_gem/-/wiki
128
119
  mailing_list_uri: https://groups.google.com/g/oauth-ruby
129
120
  funding_uri: https://liberapay.com/pboling
130
121
  rubygems_mfa_required: 'true'
131
- post_install_message:
132
- rdoc_options: []
122
+ rdoc_options:
123
+ - "--title"
124
+ - version_gem - Enhance your VERSION! Sugar for Version modules.
125
+ - "--main"
126
+ - README.md
127
+ - "--line-numbers"
128
+ - "--inline-source"
129
+ - "--quiet"
133
130
  require_paths:
134
131
  - lib
135
132
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -143,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
140
  - !ruby/object:Gem::Version
144
141
  version: '0'
145
142
  requirements: []
146
- rubygems_version: 3.4.10
147
- signing_key:
143
+ rubygems_version: 3.6.4
148
144
  specification_version: 4
149
145
  summary: Enhance your VERSION! Sugar for Version modules.
150
146
  test_files: []
metadata.gz.sig CHANGED
Binary file