version_gem 1.1.0 → 1.1.2

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: 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