version_gem 1.1.4 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -2
- data/CHANGELOG.md +21 -1
- data/CONTRIBUTING.md +94 -48
- data/README.md +267 -207
- data/lib/version_gem/api.rb +2 -0
- data/lib/version_gem/error.rb +2 -0
- data/lib/version_gem/ruby.rb +2 -0
- data/lib/version_gem/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +44 -48
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46fdc77dde9960d5a1cc1e8e4d5c167886ef9852e8dd653f99f13901639f9ed3
|
4
|
+
data.tar.gz: 53f6e874d39543bde0be8158ae9631c41baad47b86600c30cc5ec4658ecdfe07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0118cebf5ed37f1f964558421edc1aab00fdae41664575be68071775003f2d6cdabaabccc550155aea97d39a7a10d7ec462879db52ddfa521151ab1633fee141'
|
7
|
+
data.tar.gz: 777c2180b9e60dce87a8fb21dc17aa8005cc7be83393891d9d1522d07819e38f34b6e8a5584f66588acda6250488728d80d166fe90c61ee43bd08c50133b953d
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
7�� ���?4�@�f��my3�|�WG�0#%8��d���� ���ė����>��cm��a�çto��6�L��
|
2
|
+
���?:�Wߟ��p;�w��6�E��i��{� �FG֒$爴�U��;���0���aщ�� �Sr��_�Y��Ӳ/:d��L�=�Et�b�1���8ւ�\��cO9���'_]�6���Ic� Pӻ�E�y����d����cA�
|
data/CHANGELOG.md
CHANGED
@@ -10,6 +10,21 @@ 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
|
+
|
13
28
|
## [1.1.4] 2024-03-21 ([tag][1.1.4t])
|
14
29
|
### Added
|
15
30
|
- Ruby 3.3 to CI (@pboling)
|
@@ -32,6 +47,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
32
47
|
- (dev) Rake task for rubocop_gradual (@pboling)
|
33
48
|
### Fixed
|
34
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.
|
35
53
|
|
36
54
|
## [1.1.2] - 2023-03-17 ([tag][1.1.2t])
|
37
55
|
### Added
|
@@ -72,7 +90,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
72
90
|
### Added
|
73
91
|
- Initial release, with basic version parsing API (@pboling)
|
74
92
|
|
75
|
-
[Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.
|
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
|
76
96
|
[1.1.4]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.3...v1.1.4
|
77
97
|
[1.1.4t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.4
|
78
98
|
[1.1.3]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.2...v1.1.3
|
data/CONTRIBUTING.md
CHANGED
@@ -8,71 +8,108 @@ 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
|
-
|
11
|
+
We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
|
12
12
|
|
13
|
-
|
13
|
+
## You can help!
|
14
14
|
|
15
|
-
|
16
|
-
2. Update the version number in `version.rb`
|
17
|
-
3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
|
18
|
-
4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
|
19
|
-
5. Run `git push` to trigger the final CI pipeline before release, & merge PRs
|
20
|
-
a. NOTE: Remember to [check the build][🧪build]!
|
21
|
-
6. Run `git checkout main` (Or whichever branch is considered `trunk`, e.g. `master`)
|
22
|
-
7. Run `git pull origin main` to ensure you will release the latest trunk code.
|
23
|
-
8. Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use same timestamp, and generate same checksums
|
24
|
-
a. Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS` (you'll need the zsh/datetime module, if running zsh)
|
25
|
-
9. Run `bundle exec rake build`
|
26
|
-
10. Run [`bin/checksums`](https://github.com/rubygems/guides/pull/325) to create SHA-256 and SHA-512 checksums
|
27
|
-
a. Checksums will be committed automatically by the script, but not pushed
|
28
|
-
11. Run `bundle exec rake release` which will create a git tag for the version,
|
29
|
-
push git commits and tags, and push the `.gem` file to [rubygems.org][💎rubygems]
|
30
|
-
|
31
|
-
NOTE: You will need to have a public key in `certs/`, and list your cert in the
|
32
|
-
`gemspec`, in order to sign the new release.
|
33
|
-
See: [RubyGems Security Guide][🔒️rubygems-security-guide]
|
15
|
+
Simply follow these instructions:
|
34
16
|
|
35
|
-
|
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.
|
36
24
|
|
37
|
-
|
25
|
+
## Appraisals
|
38
26
|
|
39
|
-
|
27
|
+
From time to time the appraisal gemfiles in `gemfiles/` will need to be updated.
|
28
|
+
They are created and updated with the commands:
|
40
29
|
|
41
|
-
|
30
|
+
NOTE: We run on a [fork][🚎appraisal-fork] of Appraisal.
|
42
31
|
|
43
|
-
|
32
|
+
Please upvote the PR for `eval_gemfile` [support][🚎appraisal-eval-gemfile-pr]
|
44
33
|
|
45
|
-
|
46
|
-
.
|
47
|
-
|
34
|
+
```shell
|
35
|
+
BUNDLE_GEMFILE=Appraisal.root.gemfile bundle
|
36
|
+
BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
|
37
|
+
```
|
48
38
|
|
49
|
-
|
50
|
-
|
51
|
-
|
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
|
52
50
|
|
53
|
-
|
51
|
+
To run all tests
|
54
52
|
|
55
|
-
|
53
|
+
```bash
|
54
|
+
bundle exec rake test
|
55
|
+
```
|
56
56
|
|
57
|
-
|
58
|
-
2. update the version number in `version.rb`
|
59
|
-
3. run `bundle exec rake build:checksum`
|
60
|
-
4. move the built gem to project root
|
61
|
-
5. run `bin/checksum` to create the missing SHA256 checksum
|
62
|
-
6. move the built gem back to `pkg/`
|
63
|
-
7. commit the changes
|
64
|
-
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].
|
57
|
+
## Lint It
|
65
58
|
|
66
|
-
|
67
|
-
|
68
|
-
|
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
|
+
```
|
69
70
|
|
70
71
|
## Contributors
|
71
72
|
|
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
|
72
84
|
|
73
|
-
|
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:
|
91
|
+
|
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]
|
74
112
|
|
75
|
-
[🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
|
76
113
|
[⛳mail-list]: http://groups.google.com/group/oauth-ruby
|
77
114
|
[🚎src-main]: https://gitlab.com/oauth-xx/version_gem
|
78
115
|
[🧪build]: https://github.com/oauth-xx/version_gem/actions
|
@@ -80,6 +117,15 @@ See: [RubyGems Security Guide][rubygems-security-guide]
|
|
80
117
|
[🤝conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
|
81
118
|
[🖐contrib-rocks]: https://contrib.rocks
|
82
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
|
83
122
|
[💎rubygems]: https://rubygems.org
|
84
123
|
[🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
|
85
|
-
[
|
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 `
|
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,
|
@@ -13,26 +45,6 @@ gem from the Alchemists, or _[version_sorter](https://rubygems.org/gems/version_
|
|
13
45
|
|
14
46
|
For more discussion about this [see issue #2](https://gitlab.com/oauth-xx/version_gem/-/issues/2)
|
15
47
|
|
16
|
-
-----
|
17
|
-
|
18
|
-
<div id="badges">
|
19
|
-
|
20
|
-
[![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
|
21
|
-
[![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
|
22
|
-
<span class="badge-buymeacoffee">
|
23
|
-
<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>
|
24
|
-
</span>
|
25
|
-
<span class="badge-patreon">
|
26
|
-
<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>
|
27
|
-
</span>
|
28
|
-
|
29
|
-
</div>
|
30
|
-
|
31
|
-
[⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
|
32
|
-
[⛳liberapay]: https://liberapay.com/pboling/donate
|
33
|
-
[🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
|
34
|
-
[🖇sponsor]: https://github.com/sponsors/pboling
|
35
|
-
|
36
48
|
## Still here?
|
37
49
|
|
38
50
|
Give your next library an introspectable `Version` module without breaking your Gemspec.
|
@@ -51,134 +63,15 @@ This library was extracted from the gem _[oauth2](https://gitlab.com/oauth-xx/oa
|
|
51
63
|
|
52
64
|
This gem has no runtime dependencies.
|
53
65
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
1
|
61
|
-
|
62
|
-
|
63
|
-
4️⃣
|
64
|
-
5️⃣
|
65
|
-
6️⃣
|
66
|
-
7️⃣
|
67
|
-
|
68
|
-
badge #s:
|
69
|
-
⛳️
|
70
|
-
🖇
|
71
|
-
🏘
|
72
|
-
🚎
|
73
|
-
🖐
|
74
|
-
🧮
|
75
|
-
📗
|
76
|
-
|
77
|
-
appended indicators:
|
78
|
-
♻️ - URL needs to be updated from SAAS integration. Find / Replace is insufficient.
|
79
|
-
-->
|
80
|
-
|
81
|
-
| | Project | bundle add version_gem |
|
82
|
-
|:----|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
83
|
-
| 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] |
|
84
|
-
| 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] |
|
85
|
-
| 3️⃣ | maintenance & 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] |
|
86
|
-
| 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]--> |
|
87
|
-
| 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] |
|
88
|
-
| 6️⃣ | resources | [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Wiki][🖐wiki-img]][🖐wiki] |
|
89
|
-
| 7️⃣ | spread 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Tweet @ Peter][🏘tweet-img]][🏘tweet] [🌏][aboutme] [👼][angelme] [💻][coderme] |
|
90
|
-
|
91
|
-
<!--
|
92
|
-
The link tokens in the following sections should be kept ordered by the row and badge numbering scheme
|
93
|
-
-->
|
94
|
-
|
95
|
-
<!-- 1️⃣ name, license, docs -->
|
96
|
-
[⛳️gem]: https://rubygems.org/gems/version_gem
|
97
|
-
[⛳️name-img]: https://img.shields.io/badge/name-version_gem-brightgreen.svg?style=flat
|
98
|
-
[🖇src-license]: https://opensource.org/licenses/MIT
|
99
|
-
[🖇src-license-img]: https://img.shields.io/badge/License-MIT-green.svg
|
100
|
-
[🚎yard]: https://www.rubydoc.info/gems/version_gem
|
101
|
-
[🚎yard-img]: https://img.shields.io/badge/documentation-rubydoc-brightgreen.svg?style=flat
|
102
|
-
[🧮semver]: http://semver.org/
|
103
|
-
[🧮semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
|
104
|
-
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
105
|
-
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
|
106
|
-
|
107
|
-
<!-- 2️⃣ version & activity -->
|
108
|
-
[⛳️version-img]: http://img.shields.io/gem/v/version_gem.svg
|
109
|
-
[🖇DL-total-img]: https://img.shields.io/gem/dt/version_gem.svg
|
110
|
-
[🏘DL-rank-img]: https://img.shields.io/gem/rt/version_gem.svg
|
111
|
-
[🚎src-main]: https://gitlab.com/oauth-xx/version_gem
|
112
|
-
[🚎src-main-img]: https://img.shields.io/badge/source-gitlab-brightgreen.svg?style=flat
|
113
|
-
[🖐prs-o]: https://gitlab.com/oauth-xx/version_gem/-/merge_requests
|
114
|
-
[🖐prs-o-img]: https://img.shields.io/github/issues-pr/pboling/version_gem
|
115
|
-
[🧮prs-c]: https://github.com/pboling/version_gem/pulls?q=is%3Apr+is%3Aclosed
|
116
|
-
[🧮prs-c-img]: https://img.shields.io/github/issues-pr-closed/pboling/version_gem
|
117
|
-
|
118
|
-
<!-- 3️⃣ maintenance & linting -->
|
119
|
-
[⛳cclim-maint]: https://codeclimate.com/github/pboling/version_gem/maintainability
|
120
|
-
[⛳cclim-maint-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/maintainability
|
121
|
-
[🖇triage-help]: https://www.codetriage.com/pboling/version_gem
|
122
|
-
[🖇triage-help-img]: https://www.codetriage.com/pboling/version_gem/badges/users.svg
|
123
|
-
[🏘depfu♻️]: https://depfu.com/github/pboling/version_gem?project_id=35803
|
124
|
-
[🏘depfu-img♻️]: https://badges.depfu.com/badges/5d8943de6cfdf1ee048ad6d907f3e35b/count.svg
|
125
|
-
[🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
|
126
|
-
[🚎contributors-img]: https://img.shields.io/github/contributors-anon/pboling/version_gem
|
127
|
-
[🖐style-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/style.yml
|
128
|
-
[🖐style-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/style.yml/badge.svg
|
129
|
-
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
130
|
-
[🧮kloc-img]: https://img.shields.io/tokei/lines/github.com/pboling/version_gem
|
131
|
-
|
132
|
-
<!-- 4️⃣ testing -->
|
133
|
-
[🏘sup-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/supported.yml
|
134
|
-
[🏘sup-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/supported.yml/badge.svg
|
135
|
-
[🚎heads-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/heads.yml
|
136
|
-
[🚎heads-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/heads.yml/badge.svg
|
137
|
-
[🖐uns-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/unsupported.yml
|
138
|
-
[🖐uns-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/unsupported.yml/badge.svg
|
139
|
-
[🧮mac-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/macos.yml
|
140
|
-
[🧮mac-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/macos.yml/badge.svg
|
141
|
-
[📗win-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/windows.yml
|
142
|
-
[📗win-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/windows.yml/badge.svg
|
143
|
-
|
144
|
-
<!-- 5️⃣ coverage & security -->
|
145
|
-
[⛳cclim-cov]: https://codeclimate.com/github/pboling/version_gem/test_coverage
|
146
|
-
[⛳cclim-cov-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/test_coverage
|
147
|
-
[🖇codecov-img♻️]: https://codecov.io/gh/pboling/version_gem/branch/main/graph/badge.svg?token=79c3X4vtfO
|
148
|
-
[🖇codecov]: https://codecov.io/gh/pboling/version_gem
|
149
|
-
[🏘coveralls]: https://coveralls.io/github/pboling/version_gem?branch=main
|
150
|
-
[🏘coveralls-img]: https://coveralls.io/repos/github/pboling/version_gem/badge.svg?branch=main
|
151
|
-
[🚎sec-pol]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
|
152
|
-
[🚎sec-pol-img]: https://img.shields.io/badge/security-policy-brightgreen.svg?style=flat
|
153
|
-
[🖐codeQL]: https://github.com/pboling/version_gem/security/code-scanning
|
154
|
-
[🖐codeQL-img]: https://github.com/oauth-xx/version_gem/actions/workflows/codeql-analysis.yml/badge.svg
|
155
|
-
[🧮cov-wf]: https://github.com/oauth-xx/version_gem/actions/workflows/coverage.yml
|
156
|
-
[🧮cov-wf-img]: https://github.com/oauth-xx/version_gem/actions/workflows/coverage.yml/badge.svg
|
157
|
-
|
158
|
-
<!-- 6️⃣ resources -->
|
159
|
-
[🖇codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
|
160
|
-
[🖇codementor-img]: https://cdn.codementor.io/badges/get_help_github.svg
|
161
|
-
[🏘chat]: https://gitter.im/oauth-xx/version_gem
|
162
|
-
[🏘chat-img]: https://img.shields.io/gitter/room/oauth-xx/version_gem.svg
|
163
|
-
[🚎blog]: http://www.railsbling.com/tags/version_gem/
|
164
|
-
[🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
|
165
|
-
[🖐wiki]: https://gitlab.com/oauth-xx/version_gem/-/wikis/home
|
166
|
-
[🖐wiki-img]: https://img.shields.io/badge/wiki-examples-brightgreen.svg?style=flat
|
167
|
-
|
168
|
-
<!-- 7️⃣ spread 💖 -->
|
169
|
-
[⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
|
170
|
-
[⛳liberapay]: https://liberapay.com/pboling/donate
|
171
|
-
[🖇sponsor-img]: https://img.shields.io/badge/sponsor-pboling.svg?style=social&logo=github
|
172
|
-
[🖇sponsor]: https://github.com/sponsors/pboling
|
173
|
-
[🏘tweet-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
|
174
|
-
[🏘tweet]: http://twitter.com/galtzo
|
175
|
-
|
176
|
-
<!-- Maintainer Contact Links -->
|
177
|
-
[railsbling]: http://www.railsbling.com
|
178
|
-
[peterboling]: http://www.peterboling.com
|
179
|
-
[aboutme]: https://about.me/peter.boling
|
180
|
-
[angelme]: https://angel.co/peter-boling
|
181
|
-
[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] |
|
182
75
|
|
183
76
|
## Installation
|
184
77
|
|
@@ -237,14 +130,33 @@ MyLib::Version.to_a # => [0, 1, 0]
|
|
237
130
|
MyLib::Version.to_h # => { major: 0, minor: 1, patch: 0, pre: "" }
|
238
131
|
```
|
239
132
|
|
240
|
-
### 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
|
241
153
|
|
242
154
|
Your `version.rb` file now abides the Ruby convention of directory / path matching the namespace / class!
|
243
155
|
|
244
156
|
### Zietwerk
|
245
157
|
|
246
158
|
The pattern of `version.rb` breaking the ruby convention of directory / path matching the namespace / class
|
247
|
-
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. 🥺
|
248
160
|
RubyGems using this "bad is actually good" pattern are encouraged to use `Zeitwerk.for_gem`.
|
249
161
|
|
250
162
|
**Do not do that ^** if you use this gem.
|
@@ -283,8 +195,9 @@ end
|
|
283
195
|
|
284
196
|
#### Complex Zeitwerk Example
|
285
197
|
|
198
|
+
Maybe you would like to contribute one?
|
286
199
|
|
287
|
-
#### Query Ruby Version (as of version 1.2
|
200
|
+
#### Query Ruby Version (as of version 1.1.2)
|
288
201
|
|
289
202
|
In Continuous Integration environments for libraries that run against many versions of Ruby,
|
290
203
|
I often need to configure things discretely per Ruby version, and doing so forced me to repeat
|
@@ -347,43 +260,75 @@ RSpec.describe(MyLib::Version) do
|
|
347
260
|
end
|
348
261
|
```
|
349
262
|
|
350
|
-
##
|
263
|
+
## 🔐 Security
|
351
264
|
|
352
|
-
|
265
|
+
See [SECURITY.md][🔐security].
|
353
266
|
|
354
|
-
|
267
|
+
## 🤝 Contributing
|
355
268
|
|
356
|
-
|
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.
|
357
272
|
|
358
|
-
|
273
|
+
We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
|
359
274
|
|
360
|
-
|
275
|
+
Also, see [CONTRIBUTING.md][🤝contributing].
|
361
276
|
|
362
|
-
|
277
|
+
### Code Coverage
|
363
278
|
|
364
|
-
|
279
|
+
[![Coverage Graph][🔑codecov-g]][🔑codecov]
|
365
280
|
|
366
|
-
##
|
281
|
+
## 🌈 Contributors
|
367
282
|
|
368
|
-
|
369
|
-
|
370
|
-
|
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
|
290
|
+
|
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>
|
298
|
+
|
299
|
+
## 🪇 Code of Conduct
|
300
|
+
|
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].
|
371
303
|
|
372
|
-
|
304
|
+
## 📌 Versioning
|
373
305
|
|
374
|
-
|
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.
|
375
311
|
|
376
|
-
|
312
|
+
### 📌 Is "Platform Support" part of the public API?
|
377
313
|
|
378
|
-
|
314
|
+
Yes. But I'm obligated to include notes...
|
379
315
|
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
major versions.
|
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.
|
384
319
|
|
385
|
-
|
386
|
-
|
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.
|
387
332
|
|
388
333
|
For example:
|
389
334
|
|
@@ -391,36 +336,151 @@ For example:
|
|
391
336
|
spec.add_dependency("version_gem", "~> 1.1")
|
392
337
|
```
|
393
338
|
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
[
|
400
|
-
[
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
[
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
[
|
416
|
-
|
417
|
-
[
|
418
|
-
[
|
419
|
-
[
|
420
|
-
[
|
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
|
421
478
|
[railsbling]: http://www.railsbling.com
|
422
|
-
[
|
423
|
-
[
|
424
|
-
[
|
425
|
-
[
|
426
|
-
[
|
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
|
data/lib/version_gem/api.rb
CHANGED
data/lib/version_gem/error.rb
CHANGED
data/lib/version_gem/ruby.rb
CHANGED
data/lib/version_gem/version.rb
CHANGED
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.
|
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
|
-
|
14
|
+
A2NvbTAeFw0yNDA5MjAwODU4NDJaFw0yNTA5MjAwODU4NDJaMEMxFTATBgNVBAMM
|
16
15
|
DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
/
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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:
|
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.
|
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.
|
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.
|
124
|
-
changelog_uri: https://gitlab.com/oauth-xx/version_gem/-/blob/v1.1.
|
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.
|
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
|
-
|
132
|
-
|
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.
|
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
|