version_gem 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 21e250531f2630bae1d9b1961c58451b9bb25bcacff9e725ecfc8b58e5b23997
4
- data.tar.gz: 236e288d1bc0ea792e86887555c716224e441448aae87b6a2d4e4f78d195c2d0
3
+ metadata.gz: f2a6a1430cecd3c606bb156d42509955cc88b81afc05c33709bd1c482d35a352
4
+ data.tar.gz: f831c27f2fac9f8265dbe62dd8a223baafb1272e5ebe5e55bde7cb133e4196b0
5
5
  SHA512:
6
- metadata.gz: 9dee2a6a560776eb93d8104fbe4e2c20e31a62172103972b94f636d1dd793d0c623674d78c31f8a21139167e4d09e48d292efd53d27a3de943349505e1d467f4
7
- data.tar.gz: eecbc666ad24fd08d2516bc5c64b5ada2273fc153199dba97f089254eeb4fcefaa8d0e903832dae31c39108e1eb31301deb57c152b48f0c2f30e919558737266
6
+ metadata.gz: '07860ba32ebcbaa03662bcdfbef3cb11e77b46d7d9b9bc6fc295bc24b304edcc9ec635de631fd4d7e018cd6d4dc9ddc7b56af9316453a4e0968f4473dec1be5f'
7
+ data.tar.gz: f4956055f1366e0e882610fe1e1abbc841ed0fee4c5b62e262330073256bba627f6634a542aa4d55c5e7dd74b2803693e2590f3ff1e156bb880cafdc8f7b82cc
checksums.yaml.gz.sig ADDED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- # Changelog
1
+ # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
@@ -6,36 +6,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
  ### Added
9
-
10
9
  ### Changed
11
-
12
10
  ### Fixed
13
-
14
11
  ### Removed
15
12
 
16
- ## [1.1.0] - 2022-06-24
13
+ ## [1.1.2] - 2023-03-17 ([tag][1.1.2t])
14
+ ### Added
15
+ - `VersionGem::Ruby` to help library CI integration against many different versions of Ruby (@pboling)
16
+ - Experimental, optional, require (not loaded by default, which is why this can be in a patch)
17
+ - Spec coverage is now 100%, lines and branches, including the fabled `version.rb` (@pboling)
18
+ - Full RBS Signatures (@pboling)
19
+
20
+ ## [1.1.1] - 2022-09-19 ([tag][1.1.1t])
21
+ ### Added
22
+ - Alternatives section to README.md (@pboling)
23
+ - Signing cert for gem releases (@pboling)
24
+ - Mailing List and other metadata URIs (@pboling)
25
+ - Checksums for released gems (@pboling)
26
+ ### Changed
27
+ - SECURITY.md policy (@pboling)
28
+ - Version methods are now memoized (||=) on initial call for performance (@pboling)
29
+ - Gem releases are now cryptographically signed (@pboling)
30
+
31
+ ## [1.1.0] - 2022-06-24 ([tag][1.1.0t])
17
32
  ### Fixed
18
- - to_a uses same type casting as major, minor, patch, and pre
33
+ - to_a uses same type casting as major, minor, patch, and pre (@pboling)
19
34
  ### Added
20
- - RSpec Matchers and Shared Example
35
+ - RSpec Matchers and Shared Example (@pboling)
21
36
 
22
- ## [1.0.2] - 2022-06-23
37
+ ## [1.0.2] - 2022-06-23 ([tag][1.0.2t])
23
38
  ### Added
24
- - Delay loading of library code until after code coverage tool is loaded
39
+ - Delay loading of library code until after code coverage tool is loaded (@pboling)
25
40
 
26
- ## [1.0.1] - 2022-06-23
41
+ ## [1.0.1] - 2022-06-23 ([tag][1.0.1t])
27
42
  ### Added
28
- - CI Build improvements
29
- - Code coverage reporting
30
- - Documentation improvements
31
- - Badges!
43
+ - CI Build improvements (@pboling)
44
+ - Code coverage reporting (@pboling)
45
+ - Documentation improvements (@pboling)
46
+ - Badges! (@pboling)
32
47
 
33
- ## [1.0.0] - 2022-06-21
48
+ ## [1.0.0] - 2022-06-21 ([tag][1.0.0t])
34
49
  ### Added
35
- - Initial release, with basic version parsing API
50
+ - Initial release, with basic version parsing API (@pboling)
36
51
 
37
- [Unreleased]: https://github.com/pboling/version_gem/compare/v1.1.0...HEAD
38
- [1.1.0]: https://github.com/pboling/version_gem/compare/v1.0.2...v1.1.0
39
- [1.0.2]: https://github.com/pboling/version_gem/compare/v1.0.1...v1.0.2
40
- [1.0.1]: https://github.com/pboling/version_gem/compare/v1.0.0...v1.0.1
41
- [1.0.0]: https://github.com/pboling/version_gem/compare/a3055964517c159bf214712940982034b75264be...v1.0.0
52
+ [Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.2...HEAD
53
+ [1.1.2]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.1...v1.1.2
54
+ [1.1.2t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.2
55
+ [1.1.1]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.0...v1.1.1
56
+ [1.1.1t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.1
57
+ [1.1.0]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.0.2...v1.1.0
58
+ [1.1.0t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.0
59
+ [1.0.2]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.0.1...v1.0.2
60
+ [1.0.2t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.0.2
61
+ [1.0.1]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.0.0...v1.0.1
62
+ [1.0.1t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.0.1
63
+ [1.0.0]: https://gitlab.com/oauth-xx/version_gem/-/compare/a3055964517c159bf214712940982034b75264be...v1.0.0
64
+ [1.0.0t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.0.0
data/CONTRIBUTING.md CHANGED
@@ -1,25 +1,40 @@
1
1
  ## Contributing
2
2
 
3
- Bug reports and pull requests are welcome on GitHub at [https://github.com/pboling/version_gem][source]
3
+ Bug reports and pull requests are welcome on GitLab 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
5
  the [code of conduct][conduct].
6
6
 
7
- To submit a patch, please fork the project and create a patch with tests. Once you're happy with it send a pull request!
7
+ To submit a patch, please fork the project and create a patch with
8
+ tests. Once you're happy with it send a pull request and post a message to the
9
+ [google group][⛳mail-list] or on the [gitter chat][🏘chat].
8
10
 
9
- ## Contributors
10
-
11
- [![Contributors](https://contrib.rocks/image?repo=pboling/version_gem)][contributors]
11
+ ## Release
12
12
 
13
- Made with [contributors-img][contrib-rocks].
13
+ To release a new version:
14
14
 
15
- [comment]: <> (Following links are used by README, CONTRIBUTING)
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].
16
23
 
17
- [conduct]: https://github.com/pboling/version_gem/blob/main/CODE_OF_CONDUCT.md
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]
18
27
 
19
- [contrib-rocks]: https://contrib.rocks
28
+ ## Contributors
20
29
 
21
- [contributors]: https://github.com/pboling/version_gem/graphs/contributors
30
+ See: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors]
22
31
 
23
- [comment]: <> (Following links are used by README, CONTRIBUTING, Homepage)
32
+ [comment]: <> (Following links are used by README, CONTRIBUTING)
24
33
 
25
- [source]: https://github.com/pboling/version_gem
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
+ [⛳mail-list]: http://groups.google.com/group/oauth-ruby
37
+ [🚎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
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2022 Peter Boling
3
+ Copyright (c) 2022 - 2023 Peter Boling
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,21 @@
1
1
  # VersionGem
2
2
 
3
- Give your next library an introspectable `Version` module.
3
+ ## Alternatives
4
+
5
+ This gem has a very niche purpose, which is:
6
+
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.
9
+
10
+ If this isn't **precisely** your use case you may be better off looking at
11
+ [`versionaire`](https://www.alchemists.io/projects/versionaire), a wonderful, performant, well-maintained,
12
+ gem from the Alchemists, or [`version_sorter`](https://rubygems.org/gems/version_sorter) from GitHub.
13
+
14
+ For more discussion about this [see issue #2](https://gitlab.com/oauth-xx/version_gem/-/issues/2)
15
+
16
+ ## Still here?
17
+
18
+ Give your next library an introspectable `Version` module without breaking your Gemspec.
4
19
 
5
20
  ```ruby
6
21
  MyLib::Version.to_s # => "1.2.3.rc3"
@@ -12,7 +27,7 @@ MyLib::Version.to_a # => [1, 2, 3, "rc3"]
12
27
  MyLib::Version.to_h # => { major: 1, minor: 2, patch: 3, pre: "rc3" }
13
28
  ```
14
29
 
15
- This library was extracted from the gem [`oauth2`](https://github.com/oauth-xx/oauth2).
30
+ This library was extracted from the gem [`oauth2`](https://gitlab.com/oauth-xx/oauth2).
16
31
 
17
32
  This gem has no runtime dependencies.
18
33
 
@@ -40,17 +55,17 @@ badge #s:
40
55
  📗
41
56
 
42
57
  appended indicators:
43
- ♻️ - URL needs to be updated from SASS integration. Find / Replace is insufficient.
58
+ ♻️ - URL needs to be updated from SAAS integration. Find / Replace is insufficient.
44
59
  -->
45
60
 
46
- | | Project | bundle add version_gem |
61
+ | | Project | bundle add version_gem |
47
62
  |:----|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
48
- | 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] |
49
- | 2️⃣ | version & activity | [![Gem Version][⛳️version-img]][⛳️gem] [![Total Downloads][🖇DL-total-img]][⛳️gem] [![Download Rank][🏘DL-rank-img]][⛳️gem] [![Source Code][🚎src-home-img]][🚎src-home] [![Open PRs][🖐prs-o-img]][🖐prs-o] [![Closed PRs][🧮prs-c-img]][🧮prs-c] <!--[![Next Version][📗next-img]][📗next]--> |
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] <!--[![Next Version][📗next-img]][📗next]--> |
50
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] |
51
- | 4️⃣ | testing | [![Open Issues][⛳iss-o-img]][⛳iss-o] [![Closed Issues][🖇iss-c-img]][🖇iss-c] [![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]--> |
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]--> |
52
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] |
53
- | 6️⃣ | resources | [![Discussion][⛳gh-discussions-img]][⛳gh-discussions] [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Wiki][🖐wiki-img]][🖐wiki] |
68
+ | 6️⃣ | resources | [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Wiki][🖐wiki-img]][🖐wiki] |
54
69
  | 7️⃣ | spread 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Tweet @ Peter][🏘tweet-img]][🏘tweet] [🌏][aboutme] [👼][angelme] [💻][coderme] |
55
70
 
56
71
  <!--
@@ -62,8 +77,9 @@ The link tokens in the following sections should be kept ordered by the row and
62
77
  [⛳️name-img]: https://img.shields.io/badge/name-version_gem-brightgreen.svg?style=flat
63
78
  [🖇src-license]: https://opensource.org/licenses/MIT
64
79
  [🖇src-license-img]: https://img.shields.io/badge/License-MIT-green.svg
65
- [🚎yard]: https://www.rubydoc.info/github/pboling/version_gem
80
+ [🚎yard]: https://www.rubydoc.info/gems/version_gem
66
81
  [🚎yard-img]: https://img.shields.io/badge/documentation-rubydoc-brightgreen.svg?style=flat
82
+ [🧮semver]: http://semver.org/
67
83
  [🧮semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
68
84
  [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
69
85
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
@@ -72,14 +88,12 @@ The link tokens in the following sections should be kept ordered by the row and
72
88
  [⛳️version-img]: http://img.shields.io/gem/v/version_gem.svg
73
89
  [🖇DL-total-img]: https://img.shields.io/gem/dt/version_gem.svg
74
90
  [🏘DL-rank-img]: https://img.shields.io/gem/rt/version_gem.svg
75
- [🚎src-home]: https://github.com/pboling/version_gem
76
- [🚎src-home-img]: https://img.shields.io/badge/source-github-brightgreen.svg?style=flat
77
- [🖐prs-o]: https://github.com/pboling/version_gem/pulls
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
78
94
  [🖐prs-o-img]: https://img.shields.io/github/issues-pr/pboling/version_gem
79
95
  [🧮prs-c]: https://github.com/pboling/version_gem/pulls?q=is%3Apr+is%3Aclosed
80
96
  [🧮prs-c-img]: https://img.shields.io/github/issues-pr-closed/pboling/version_gem
81
- [📗next]: https://github.com/pboling/version_gem/milestone/1
82
- [📗next-img]: https://img.shields.io/github/milestones/progress/pboling/version_gem/1?label=Next%20Version
83
97
 
84
98
  <!-- 3️⃣ maintanence & linting -->
85
99
  [⛳cclim-maint]: https://codeclimate.com/github/pboling/version_gem/maintainability
@@ -88,28 +102,24 @@ The link tokens in the following sections should be kept ordered by the row and
88
102
  [🖇triage-help-img]: https://www.codetriage.com/pboling/version_gem/badges/users.svg
89
103
  [🏘depfu♻️]: https://depfu.com/github/pboling/version_gem?project_id=35803
90
104
  [🏘depfu-img♻️]: https://badges.depfu.com/badges/5d8943de6cfdf1ee048ad6d907f3e35b/count.svg
91
- [🚎contributors]: https://github.com/pboling/version_gem/graphs/contributors
105
+ [🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
92
106
  [🚎contributors-img]: https://img.shields.io/github/contributors-anon/pboling/version_gem
93
- [🖐style-wf]: https://github.com/pboling/version_gem/actions/workflows/style.yml
94
- [🖐style-wf-img]: https://github.com/pboling/version_gem/actions/workflows/style.yml/badge.svg
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
95
109
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
96
110
  [🧮kloc-img]: https://img.shields.io/tokei/lines/github.com/pboling/version_gem
97
111
 
98
112
  <!-- 4️⃣ testing -->
99
- [⛳iss-o]: https://github.com/pboling/version_gem/issues
100
- [⛳iss-o-img]: https://img.shields.io/github/issues-raw/pboling/version_gem
101
- [🖇iss-c]: https://github.com/pboling/version_gem/issues?q=is%3Aissue+is%3Aclosed
102
- [🖇iss-c-img]: https://img.shields.io/github/issues-closed-raw/pboling/version_gem
103
- [🏘sup-wf]: https://github.com/pboling/version_gem/actions/workflows/supported.yml
104
- [🏘sup-wf-img]: https://github.com/pboling/version_gem/actions/workflows/supported.yml/badge.svg
105
- [🚎heads-wf]: https://github.com/pboling/version_gem/actions/workflows/heads.yml
106
- [🚎heads-wf-img]: https://github.com/pboling/version_gem/actions/workflows/heads.yml/badge.svg
107
- [🖐uns-wf]: https://github.com/pboling/version_gem/actions/workflows/unsupported.yml
108
- [🖐uns-wf-img]: https://github.com/pboling/version_gem/actions/workflows/unsupported.yml/badge.svg
109
- [🧮mac-wf]: https://github.com/pboling/version_gem/actions/workflows/macos.yml
110
- [🧮mac-wf-img]: https://github.com/pboling/version_gem/actions/workflows/macos.yml/badge.svg
111
- [📗win-wf]: https://github.com/pboling/version_gem/actions/workflows/windows.yml
112
- [📗win-wf-img]: https://github.com/pboling/version_gem/actions/workflows/windows.yml/badge.svg
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
113
123
 
114
124
  <!-- 5️⃣ coverage & security -->
115
125
  [⛳cclim-cov]: https://codeclimate.com/github/pboling/version_gem/test_coverage
@@ -118,23 +128,21 @@ The link tokens in the following sections should be kept ordered by the row and
118
128
  [🖇codecov]: https://codecov.io/gh/pboling/version_gem
119
129
  [🏘coveralls]: https://coveralls.io/github/pboling/version_gem?branch=main
120
130
  [🏘coveralls-img]: https://coveralls.io/repos/github/pboling/version_gem/badge.svg?branch=main
121
- [🚎sec-pol]: https://github.com/pboling/version_gem/blob/main/SECURITY.md
131
+ [🚎sec-pol]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
122
132
  [🚎sec-pol-img]: https://img.shields.io/badge/security-policy-brightgreen.svg?style=flat
123
133
  [🖐codeQL]: https://github.com/pboling/version_gem/security/code-scanning
124
- [🖐codeQL-img]: https://github.com/pboling/version_gem/actions/workflows/codeql-analysis.yml/badge.svg
125
- [🧮cov-wf]: https://github.com/pboling/version_gem/actions/workflows/coverage.yml
126
- [🧮cov-wf-img]: https://github.com/pboling/version_gem/actions/workflows/coverage.yml/badge.svg
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
127
137
 
128
138
  <!-- 6️⃣ resources -->
129
- [⛳gh-discussions]: https://github.com/pboling/version_gem/discussions
130
- [⛳gh-discussions-img]: https://img.shields.io/github/discussions/pboling/version_gem
131
139
  [🖇codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
132
140
  [🖇codementor-img]: https://cdn.codementor.io/badges/get_help_github.svg
133
- [🏘chat]: https://gitter.im/pboling/version_gem
134
- [🏘chat-img]: https://img.shields.io/gitter/room/pboling/version_gem.svg
141
+ [🏘chat]: https://gitter.im/oauth-xx/version_gem
142
+ [🏘chat-img]: https://img.shields.io/gitter/room/oauth-xx/version_gem.svg
135
143
  [🚎blog]: http://www.railsbling.com/tags/version_gem/
136
144
  [🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
137
- [🖐wiki]: https://github.com/pboling/version_gem/wiki
145
+ [🖐wiki]: https://gitlab.com/oauth-xx/version_gem/-/wikis/home
138
146
  [🖐wiki-img]: https://img.shields.io/badge/wiki-examples-brightgreen.svg?style=flat
139
147
 
140
148
  <!-- 7️⃣ spread 💖 -->
@@ -213,6 +221,32 @@ MyLib::Version.to_h # => { major: 0, minor: 1, patch: 0, pre: "" }
213
221
 
214
222
  Your `version.rb` file now abides the Ruby convention of directory / path matching the namespace / class!
215
223
 
224
+ #### Query Ruby Version (as of version 1.2.0)
225
+
226
+ In Continuous Integration environments for libraries that run against many versions of Ruby,
227
+ I often need to configure things discretely per Ruby version, and doing so forced me to repeat
228
+ a significant amount of boilerplate code across each project.
229
+
230
+ Thus `VersionGem::Ruby` was born. It has the two optimized methods I always need:
231
+
232
+ ```ruby
233
+ engine = 'ruby'
234
+ version = "2.7.7"
235
+ gte_minimum_version?(version, engine) # Is the current version of Ruby greater than or equal to some minimum?
236
+
237
+ major = 3
238
+ minor = 2
239
+ actual_minor_version?(major, minor, engine) # Is the current version of Ruby precisely a specific minor version of Ruby?
240
+ ```
241
+
242
+ `Version::Ruby` is *not loaded* by default. If you want to use it, you must require it as:
243
+ ```ruby
244
+ require "version_gem/ruby"
245
+ ```
246
+
247
+ Normally I do this in my `spec/spec_helper.rb`, and/or `.simplecov` files.
248
+ Occasionally in my `Rakefile`.
249
+
216
250
  ### Caveat
217
251
 
218
252
  This design keeps your `version.rb` file compatible with the way `gemspec` files use them.
@@ -262,7 +296,7 @@ See [CONTRIBUTING.md][contributing]
262
296
 
263
297
  ## Contributors
264
298
 
265
- [![Contributors](https://contrib.rocks/image?repo=pboling/version_gem)]("https://github.com/pboling/version_gem/graphs/contributors")
299
+ [![Contributors](https://contrib.rocks/image?repo=pboling/version_gem)]("https://gitlab.com/oauth-xx/version_gem/-/graphs/main")
266
300
 
267
301
  Made with [contributors-img](https://contrib.rocks).
268
302
 
@@ -272,15 +306,15 @@ The gem is available as open source under the terms of
272
306
  the [MIT License][license] [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)][license-ref].
273
307
  See [LICENSE][license] for the official [Copyright Notice][copyright-notice-explainer].
274
308
 
275
- * Copyright (c) 2022 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
309
+ * Copyright (c) 2022 - 2023 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
276
310
 
277
311
  ## Code of Conduct
278
312
 
279
- Everyone interacting in the VersionGem project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/pboling/version_gem/blob/main/CODE_OF_CONDUCT.md).
313
+ 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).
280
314
 
281
315
  ## Versioning
282
316
 
283
- This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations of this scheme should be reported as
317
+ This library aims to adhere to [Semantic Versioning 2.0.0][🧮semver]. Violations of this scheme should be reported as
284
318
  bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be
285
319
  immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new
286
320
  major versions.
@@ -296,30 +330,22 @@ spec.add_dependency "version_gem", "~> 1.1"
296
330
 
297
331
  ## Security
298
332
 
299
- See [SECURITY.md](https://github.com/pboling/version_gem/blob/main/SECURITY.md).
333
+ See [SECURITY.md](https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md).
300
334
 
301
335
  [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
302
336
 
303
- [gh_discussions]: https://github.com/pboling/version_gem/discussions
337
+ [conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
304
338
 
305
- [conduct]: https://github.com/pboling/version_gem/blob/main/CODE_OF_CONDUCT.md
339
+ [contributing]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CONTRIBUTING.md
306
340
 
307
- [contributing]: https://github.com/pboling/version_gem/blob/main/CONTRIBUTING.md
341
+ [security]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
308
342
 
309
- [security]: https://github.com/pboling/version_gem/blob/main/SECURITY.md
310
-
311
- [license]: https://github.com/pboling/version_gem/blob/main/LICENSE.txt
343
+ [license]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/LICENSE.txt
312
344
 
313
345
  [license-ref]: https://opensource.org/licenses/MIT
314
346
 
315
- [semver]: http://semver.org/
316
-
317
347
  [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
318
348
 
319
- [railsbling]: http://www.railsbling.com
320
-
321
- [peterboling]: http://www.peterboling.com
322
-
323
349
  [aboutme]: https://about.me/peter.boling
324
350
 
325
351
  [angelme]: https://angel.co/peter-boling
@@ -330,15 +356,11 @@ See [SECURITY.md](https://github.com/pboling/version_gem/blob/main/SECURITY.md).
330
356
 
331
357
  [tweetme]: http://twitter.com/galtzo
332
358
 
333
- [politicme]: https://nationalprogressiveparty.org
359
+ [source]: https://gitlab.com/oauth-xx/version_gem/
334
360
 
335
- [documentation]: https://rubydoc.info/github/pboling/version_gem/main
361
+ [actions]: https://github.com/oauth-xx/version_gem/actions
336
362
 
337
- [source]: https://github.com/pboling/version_gem/
338
-
339
- [actions]: https://github.com/pboling/version_gem/actions
340
-
341
- [issues]: https://github.com/pboling/version_gem/issues
363
+ [issues]: https://gitlab.com/oauth-xx/version_gem/-/issues
342
364
 
343
365
  [climate_maintainability]: https://codeclimate.com/github/pboling/version_gem/maintainability
344
366
 
@@ -352,8 +374,6 @@ See [SECURITY.md](https://github.com/pboling/version_gem/blob/main/SECURITY.md).
352
374
 
353
375
  [rubygems]: https://rubygems.org/gems/version_gem
354
376
 
355
- [chat]: https://gitter.im/pboling/version_gem?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
356
-
357
377
  [maintenancee_policy]: https://guides.rubyonrails.org/maintenance_policy.html#security-issues
358
378
 
359
379
  [liberapay_donate]: https://liberapay.com/pboling/donate
data/SECURITY.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported |
6
- |------------|-----------|
7
- | 1.<latest> | ✅ |
5
+ | Version | Supported |
6
+ |----------|-----------|
7
+ | 1.latest | ✅ |
8
8
 
9
9
  ## Reporting a Vulnerability
10
10
 
@@ -11,35 +11,35 @@ module VersionGem
11
11
  #
12
12
  # @return [Integer]
13
13
  def major
14
- _to_a[0].to_i
14
+ @major ||= _to_a[0].to_i
15
15
  end
16
16
 
17
17
  # The minor version
18
18
  #
19
19
  # @return [Integer]
20
20
  def minor
21
- _to_a[1].to_i
21
+ @minor ||= _to_a[1].to_i
22
22
  end
23
23
 
24
24
  # The patch version
25
25
  #
26
26
  # @return [Integer]
27
27
  def patch
28
- _to_a[2].to_i
28
+ @patch ||= _to_a[2].to_i
29
29
  end
30
30
 
31
31
  # The pre-release version, if any
32
32
  #
33
33
  # @return [String, NilClass]
34
34
  def pre
35
- _to_a[3]
35
+ @pre ||= _to_a[3]
36
36
  end
37
37
 
38
38
  # The version number as a hash
39
39
  #
40
40
  # @return [Hash]
41
41
  def to_h
42
- {
42
+ @to_h ||= {
43
43
  major: major,
44
44
  minor: minor,
45
45
  patch: patch,
@@ -51,7 +51,7 @@ module VersionGem
51
51
  #
52
52
  # @return [Array<[Integer, String, NilClass]>]
53
53
  def to_a
54
- [major, minor, patch, pre]
54
+ @to_a ||= [major, minor, patch, pre]
55
55
  end
56
56
 
57
57
  private
@@ -60,7 +60,7 @@ module VersionGem
60
60
  #
61
61
  # @return [Array<String>]
62
62
  def _to_a
63
- self::VERSION.split('.')
63
+ @_to_a = self::VERSION.split('.')
64
64
  end
65
65
  end
66
66
  end
@@ -0,0 +1,18 @@
1
+ module VersionGem
2
+ # Helpers for library CI integration against many different versions of Ruby
3
+ module Ruby
4
+ RUBY_VER = ::Gem::Version.new(RUBY_VERSION)
5
+
6
+ def gte_minimum_version?(version, engine = 'ruby')
7
+ RUBY_VER >= ::Gem::Version.new(version) && ::RUBY_ENGINE == engine
8
+ end
9
+ module_function :gte_minimum_version?
10
+
11
+ def actual_minor_version?(major, minor, engine = 'ruby')
12
+ major.to_i == RUBY_VER.segments[0] &&
13
+ minor.to_i == RUBY_VER.segments[1] &&
14
+ ::RUBY_ENGINE == engine
15
+ end
16
+ module_function :actual_minor_version?
17
+ end
18
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VersionGem
4
4
  module Version
5
- VERSION = '1.1.0'.freeze
5
+ VERSION = '1.1.2'.freeze
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.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: version_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
8
  autorequire:
9
- bindir: exe
10
- cert_chain: []
11
- date: 2022-06-24 00:00:00.000000000 Z
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
14
+ ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
15
+ A2NvbTAeFw0yMjA5MTgyMzEyMzBaFw0yMzA5MTgyMzEyMzBaMEMxFTATBgNVBAMM
16
+ 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
28
+ 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==
38
+ -----END CERTIFICATE-----
39
+ date: 2023-03-17 00:00:00.000000000 Z
12
40
  dependencies:
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: rspec
@@ -24,6 +52,20 @@ dependencies:
24
52
  - - ">="
25
53
  - !ruby/object:Gem::Version
26
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-block_is_expected
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: rake
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +145,7 @@ dependencies:
103
145
  description: Versions are good. Versions are cool. Versions will win.
104
146
  email:
105
147
  - peter.boling@gmail.com
148
+ - oauth-ruby@googlegroups.com
106
149
  executables: []
107
150
  extensions: []
108
151
  extra_rdoc_files: []
@@ -118,18 +161,20 @@ files:
118
161
  - lib/version_gem/basic.rb
119
162
  - lib/version_gem/error.rb
120
163
  - lib/version_gem/rspec.rb
164
+ - lib/version_gem/ruby.rb
121
165
  - lib/version_gem/version.rb
122
- - sig/version_gem.rbs
123
- homepage: https://github.com/pboling/version_gem
166
+ homepage: https://gitlab.com/oauth-xx/version_gem
124
167
  licenses:
125
168
  - MIT
126
169
  metadata:
127
- homepage_uri: https://github.com/pboling/version_gem
128
- source_code_uri: https://github.com/pboling/version_gem/tree/v1.1.0
129
- changelog_uri: https://github.com/pboling/version_gem/blob/v1.1.0/CHANGELOG.md
130
- bug_tracker_uri: https://github.com/pboling/version_gem/issues
131
- documentation_uri: https://www.rubydoc.info/gems/version_gem/1.1.0
132
- wiki_uri: https://github.com/pboling/version_gem/wiki
170
+ homepage_uri: https://gitlab.com/oauth-xx/version_gem
171
+ source_code_uri: https://gitlab.com/oauth-xx/version_gem/-/tree/v1.1.2
172
+ changelog_uri: https://gitlab.com/oauth-xx/version_gem/-/blob/v1.1.2/CHANGELOG.md
173
+ bug_tracker_uri: https://gitlab.com/oauth-xx/version_gem/-/issues
174
+ documentation_uri: https://www.rubydoc.info/gems/version_gem/1.1.2
175
+ wiki_uri: https://gitlab.com/oauth-xx/version_gem/-/wiki
176
+ mailing_list_uri: https://groups.google.com/g/oauth-ruby
177
+ funding_uri: https://liberapay.com/pboling
133
178
  rubygems_mfa_required: 'true'
134
179
  post_install_message:
135
180
  rdoc_options: []
@@ -146,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
191
  - !ruby/object:Gem::Version
147
192
  version: '0'
148
193
  requirements: []
149
- rubygems_version: 3.3.16
194
+ rubygems_version: 3.4.8
150
195
  signing_key:
151
196
  specification_version: 4
152
197
  summary: Enhance your VERSION! Sugar for Version modules.
metadata.gz.sig ADDED
Binary file
data/sig/version_gem.rbs DELETED
@@ -1,4 +0,0 @@
1
- module VersionGem
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
- end