version_gem 1.1.2 → 1.1.4

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: f2a6a1430cecd3c606bb156d42509955cc88b81afc05c33709bd1c482d35a352
4
- data.tar.gz: f831c27f2fac9f8265dbe62dd8a223baafb1272e5ebe5e55bde7cb133e4196b0
3
+ metadata.gz: 293448abeed414d0a43cee34925de9e94cf3329326e248d18694d499f1952e47
4
+ data.tar.gz: 24a83ab4592f9b5271205ee24b7829af6bb13aae5f2a74f982663aad127ac6b3
5
5
  SHA512:
6
- metadata.gz: '07860ba32ebcbaa03662bcdfbef3cb11e77b46d7d9b9bc6fc295bc24b304edcc9ec635de631fd4d7e018cd6d4dc9ddc7b56af9316453a4e0968f4473dec1be5f'
7
- data.tar.gz: f4956055f1366e0e882610fe1e1abbc841ed0fee4c5b62e262330073256bba627f6634a542aa4d55c5e7dd74b2803693e2590f3ff1e156bb880cafdc8f7b82cc
6
+ metadata.gz: 8b668065b9b75fd6e7e262ee7a8237da8e8844bdb9f11978cc504da6d7da5dce436bbe3af096c1feb18aab0b0d938a3b083a6090af992ae60ffd849f0f5e8e86
7
+ data.tar.gz: cf0d558fc6ffb5a39795515c4b98553e7703a2ccc120488e5ca09c2ae4c7761143c0127506da9596606ea57bd47627be3ef41ee19f2f930e755d5044b901bbe3
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -10,6 +10,29 @@ 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.4] 2024-03-21 ([tag][1.1.4t])
14
+ ### Added
15
+ - Ruby 3.3 to CI (@pboling)
16
+ ### Fixed
17
+ - Remove the executable bit from non-executable files (@Fryguy)
18
+
19
+ ## [1.1.3] 2023-06-05 ([tag][1.1.3t])
20
+ ### Added
21
+ - More test coverage (now 100% 🎉) (@pboling)
22
+ - Improved documentation (now 77% 🎉) (@pboling)
23
+ - Gemfile context pattern (@pboling)
24
+ - Improved linting (via rubocop-lts) (@pboling)
25
+ - More robust GHA config (@pboling)
26
+ - (dev) Dependencies (@pboling)
27
+ - yard-junk
28
+ - redcarpet
29
+ - pry, IRB alternative
30
+ - pry-suite
31
+ - debase, for IDE debugging
32
+ - (dev) Rake task for rubocop_gradual (@pboling)
33
+ ### Fixed
34
+ - (dev) `yard` documentation task (@pboling)
35
+
13
36
  ## [1.1.2] - 2023-03-17 ([tag][1.1.2t])
14
37
  ### Added
15
38
  - `VersionGem::Ruby` to help library CI integration against many different versions of Ruby (@pboling)
@@ -49,7 +72,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
49
72
  ### Added
50
73
  - Initial release, with basic version parsing API (@pboling)
51
74
 
52
- [Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.2...HEAD
75
+ [Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.4...HEAD
76
+ [1.1.4]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.3...v1.1.4
77
+ [1.1.4t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.4
78
+ [1.1.3]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.2...v1.1.3
79
+ [1.1.3t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.3
53
80
  [1.1.2]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.1...v1.1.2
54
81
  [1.1.2t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.2
55
82
  [1.1.1]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.0...v1.1.1
data/CONTRIBUTING.md CHANGED
@@ -1,5 +1,47 @@
1
1
  ## Contributing
2
2
 
3
+ Bug reports and pull requests are welcome on GitHub at [https://gitlab.com/oauth-xx/version_gem][🚎src-main]
4
+ . This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
5
+ the [code of conduct][🤝conduct].
6
+
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].
10
+
11
+ ## Release
12
+
13
+ To release a new version:
14
+
15
+ 1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check
16
+ 2. Update the version number in `version.rb`
17
+ 3. Run `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]
34
+
35
+ ## Contributors
36
+
37
+ [![Contributors](https://contrib.rocks/image?repo=oauth-xx/version_gem)][🖐contributors]
38
+
39
+ Made with [contributors-img][🖐contrib-rocks].
40
+
41
+ Also see GitLab Contributors: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors]
42
+
43
+ ## Contributing
44
+
3
45
  Bug reports and pull requests are welcome on GitLab at [https://gitlab.com/oauth-xx/version_gem][🚎src-main]
4
46
  . This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
5
47
  the [code of conduct][conduct].
@@ -27,14 +69,17 @@ See: [RubyGems Security Guide][rubygems-security-guide]
27
69
 
28
70
  ## Contributors
29
71
 
30
- See: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors]
31
72
 
32
73
  [comment]: <> (Following links are used by README, CONTRIBUTING)
33
74
 
34
- [conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
35
75
  [🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
36
76
  [⛳mail-list]: http://groups.google.com/group/oauth-ruby
37
77
  [🚎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
78
+ [🧪build]: https://github.com/oauth-xx/version_gem/actions
79
+ [🏘chat]: https://matrix.to/#/#pboling_version_gem:gitter.im
80
+ [🤝conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
81
+ [🖐contrib-rocks]: https://contrib.rocks
82
+ [🖐contributors]: https://github.com/oauth-xx/version_gem/graphs/contributors
83
+ [💎rubygems]: https://rubygems.org
84
+ [🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
85
+ [🚎src-main]: https://github.com/oauth-xx/version_gem
data/README.md CHANGED
@@ -8,11 +8,31 @@ This gem has a very niche purpose, which is:
8
8
  2. while not interfering with `gemspec` parsing where the `VERSION` string is traditionally used.
9
9
 
10
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.
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
13
 
14
14
  For more discussion about this [see issue #2](https://gitlab.com/oauth-xx/version_gem/-/issues/2)
15
15
 
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
+
16
36
  ## Still here?
17
37
 
18
38
  Give your next library an introspectable `Version` module without breaking your Gemspec.
@@ -27,7 +47,7 @@ MyLib::Version.to_a # => [1, 2, 3, "rc3"]
27
47
  MyLib::Version.to_h # => { major: 1, minor: 2, patch: 3, pre: "rc3" }
28
48
  ```
29
49
 
30
- This library was extracted from the gem [`oauth2`](https://gitlab.com/oauth-xx/oauth2).
50
+ This library was extracted from the gem _[oauth2](https://gitlab.com/oauth-xx/oauth2)_.
31
51
 
32
52
  This gem has no runtime dependencies.
33
53
 
@@ -58,15 +78,15 @@ appended indicators:
58
78
  ♻️ - URL needs to be updated from SAAS integration. Find / Replace is insufficient.
59
79
  -->
60
80
 
61
- | | Project | bundle add version_gem |
62
- |:----|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
63
- | 1️⃣ | name, license, docs, standards | [![RubyGems.org][⛳️name-img]][⛳️gem] [![License: MIT][🖇src-license-img]][🖇src-license] [![RubyDoc.info][🚎yard-img]][🚎yard] [![SemVer 2.0.0][🧮semver-img]][🧮semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] |
64
- | 2️⃣ | version & activity | [![Gem Version][⛳️version-img]][⛳️gem] [![Total Downloads][🖇DL-total-img]][⛳️gem] [![Download Rank][🏘DL-rank-img]][⛳️gem] [![Source Code][🚎src-main-img]][🚎src-main] [![Open PRs][🖐prs-o-img]][🖐prs-o] [![Closed PRs][🧮prs-c-img]][🧮prs-c] <!--[![Next Version][📗next-img]][📗next]--> |
65
- | 3️⃣ | maintanence & linting | [![Maintainability][⛳cclim-maint-img♻️]][⛳cclim-maint] [![Helpers][🖇triage-help-img]][🖇triage-help] [![Depfu][🏘depfu-img♻️]][🏘depfu♻️] [![Contributors][🚎contributors-img]][🚎contributors] [![Style][🖐style-wf-img]][🖐style-wf] [![Kloc Roll][🧮kloc-img]][🧮kloc] |
66
- | 4️⃣ | testing | [![Supported][🏘sup-wf-img]][🏘sup-wf] [![Heads][🚎heads-wf-img]][🚎heads-wf] [![Unofficial Support][🖐uns-wf-img]][🖐uns-wf] <!--[![MacOS][🧮mac-wf-img]][🧮mac-wf] [![Windows][📗win-wf-img]][📗win-wf]--> |
67
- | 5️⃣ | coverage & security | [![CodeClimate][⛳cclim-cov-img♻️]][⛳cclim-cov] [![CodeCov][🖇codecov-img♻️]][🖇codecov] [![Coveralls][🏘coveralls-img]][🏘coveralls] [![Security Policy][🚎sec-pol-img]][🚎sec-pol] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Code Coverage][🧮cov-wf-img]][🧮cov-wf] |
68
- | 6️⃣ | resources | [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Wiki][🖐wiki-img]][🖐wiki] |
69
- | 7️⃣ | spread 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Tweet @ Peter][🏘tweet-img]][🏘tweet] [🌏][aboutme] [👼][angelme] [💻][coderme] |
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] |
70
90
 
71
91
  <!--
72
92
  The link tokens in the following sections should be kept ordered by the row and badge numbering scheme
@@ -95,7 +115,7 @@ The link tokens in the following sections should be kept ordered by the row and
95
115
  [🧮prs-c]: https://github.com/pboling/version_gem/pulls?q=is%3Apr+is%3Aclosed
96
116
  [🧮prs-c-img]: https://img.shields.io/github/issues-pr-closed/pboling/version_gem
97
117
 
98
- <!-- 3️⃣ maintanence & linting -->
118
+ <!-- 3️⃣ maintenance & linting -->
99
119
  [⛳cclim-maint]: https://codeclimate.com/github/pboling/version_gem/maintainability
100
120
  [⛳cclim-maint-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/maintainability
101
121
  [🖇triage-help]: https://www.codetriage.com/pboling/version_gem
@@ -221,6 +241,49 @@ MyLib::Version.to_h # => { major: 0, minor: 1, patch: 0, pre: "" }
221
241
 
222
242
  Your `version.rb` file now abides the Ruby convention of directory / path matching the namespace / class!
223
243
 
244
+ ### Zietwerk
245
+
246
+ 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.
248
+ RubyGems using this "bad is actually good" pattern are encouraged to use `Zeitwerk.for_gem`.
249
+
250
+ **Do not do that ^** if you use this gem.
251
+
252
+ #### Simple Zeitwerk Example
253
+
254
+ Create a gem like this (keeping with the `MyLib` theme):
255
+
256
+ ```shell
257
+ bundle gem my_lib
258
+ ```
259
+
260
+ Then following the usage instructions above, you edit your primary namespace file @ `lib/my_lib.rb`,
261
+ but inject the Zeitwerk loader.
262
+
263
+ ```ruby
264
+ # frozen_string_literal: true
265
+
266
+ require_relative "my_lib/version"
267
+
268
+ module MyLib
269
+ class Error < StandardError; end
270
+ # Your code goes here...
271
+ end
272
+
273
+ loader = Zeitwerk::Loader.new
274
+ loader.tag = File.basename(__FILE__, ".rb")
275
+ loader.push_dir("lib/my_lib", namespace: MyLib)
276
+ loader.setup # ready!
277
+ loader.eager_load(force: true) # optional!
278
+
279
+ MyLib::Version.class_eval do
280
+ extend VersionGem::Basic
281
+ end
282
+ ```
283
+
284
+ #### Complex Zeitwerk Example
285
+
286
+
224
287
  #### Query Ruby Version (as of version 1.2.0)
225
288
 
226
289
  In Continuous Integration environments for libraries that run against many versions of Ruby,
@@ -230,7 +293,7 @@ a significant amount of boilerplate code across each project.
230
293
  Thus `VersionGem::Ruby` was born. It has the two optimized methods I always need:
231
294
 
232
295
  ```ruby
233
- engine = 'ruby'
296
+ engine = "ruby"
234
297
  version = "2.7.7"
235
298
  gte_minimum_version?(version, engine) # Is the current version of Ruby greater than or equal to some minimum?
236
299
 
@@ -257,29 +320,29 @@ The enhancement from this gem is only available at runtime.
257
320
 
258
321
  In `spec_helper.rb`:
259
322
  ```ruby
260
- require 'version_gem/rspec'
323
+ require "version_gem/rspec"
261
324
  ```
262
325
 
263
326
  Then you can write a test like:
264
327
 
265
328
  ```ruby
266
- RSpec.describe MyLib::Version do
267
- it_behaves_like 'a Version module', described_class
329
+ RSpec.describe(MyLib::Version) do
330
+ it_behaves_like "a Version module", described_class
268
331
  end
269
332
 
270
333
  # Or, if you want to write your own, here is the a la carte menu:
271
- RSpec.describe MyLib::Version do
334
+ RSpec.describe(MyLib::Version) do
272
335
  it "is a Version module" do
273
336
  expect(described_class).is_a?(Module)
274
- expect(described_class).to have_version_constant
275
- expect(described_class).to have_version_as_string
276
- expect(described_class.to_s).to be_a(String)
277
- expect(described_class).to have_major_as_integer
278
- expect(described_class).to have_minor_as_integer
279
- expect(described_class).to have_patch_as_integer
280
- expect(described_class).to have_pre_as_nil_or_string
281
- expect(described_class.to_h.keys).to match_array(%i[major minor patch pre])
282
- expect(described_class.to_a).to be_a(Array)
337
+ expect(described_class).to(have_version_constant)
338
+ expect(described_class).to(have_version_as_string)
339
+ expect(described_class.to_s).to(be_a(String))
340
+ expect(described_class).to(have_major_as_integer)
341
+ expect(described_class).to(have_minor_as_integer)
342
+ expect(described_class).to(have_patch_as_integer)
343
+ expect(described_class).to(have_pre_as_nil_or_string)
344
+ expect(described_class.to_h.keys).to(match_array(%i[major minor patch pre]))
345
+ expect(described_class.to_a).to(be_a(Array))
283
346
  end
284
347
  end
285
348
  ```
@@ -325,57 +388,39 @@ the [Pessimistic Version Constraint][pvc] with two digits of precision.
325
388
  For example:
326
389
 
327
390
  ```ruby
328
- spec.add_dependency "version_gem", "~> 1.1"
391
+ spec.add_dependency("version_gem", "~> 1.1")
329
392
  ```
330
393
 
331
394
  ## Security
332
395
 
333
396
  See [SECURITY.md](https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md).
334
397
 
398
+ [aboutme]: https://about.me/peter.boling
399
+ [actions]: https://github.com/oauth-xx/version_gem/actions
400
+ [angelme]: https://angel.co/peter-boling
401
+ [blogpage]: http://www.railsbling.com/tags/version_gem/
402
+ [codecov_coverage]: https://codecov.io/gh/oauth-xx/version_gem
403
+ [code_triage]: https://www.codetriage.com/oauth-xx/version_gem
404
+ [chat]: https://gitter.im/oauth-xx/version_gem?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
405
+ [climate_coverage]: https://codeclimate.com/github/oauth-xx/version_gem/test_coverage
406
+ [climate_maintainability]: https://codeclimate.com/github/oauth-xx/version_gem/maintainability
335
407
  [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
336
-
337
408
  [conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
338
-
339
409
  [contributing]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CONTRIBUTING.md
340
-
341
- [security]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
342
-
343
- [license]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/LICENSE.txt
344
-
410
+ [devto]: https://dev.to/galtzo
411
+ [documentation]: https://rubydoc.info/github/oauth-xx/version_gem/main
412
+ [followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
413
+ [gh_sponsors]: https://github.com/sponsors/pboling
414
+ [issues]: https://github.com/oauth-xx/version_gem/issues
415
+ [liberapay_donate]: https://liberapay.com/pboling/donate
416
+ [license]: LICENSE.txt
345
417
  [license-ref]: https://opensource.org/licenses/MIT
346
-
418
+ [license-img]: https://img.shields.io/badge/License-MIT-green.svg
419
+ [peterboling]: http://www.peterboling.com
347
420
  [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
348
-
349
- [aboutme]: https://about.me/peter.boling
350
-
351
- [angelme]: https://angel.co/peter-boling
352
-
353
- [coderme]:http://coderwall.com/pboling
354
-
355
- [followme-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
356
-
357
- [tweetme]: http://twitter.com/galtzo
358
-
359
- [source]: https://gitlab.com/oauth-xx/version_gem/
360
-
361
- [actions]: https://github.com/oauth-xx/version_gem/actions
362
-
363
- [issues]: https://gitlab.com/oauth-xx/version_gem/-/issues
364
-
365
- [climate_maintainability]: https://codeclimate.com/github/pboling/version_gem/maintainability
366
-
367
- [climate_coverage]: https://codeclimate.com/github/pboling/version_gem/test_coverage
368
-
369
- [codecov_coverage]: https://codecov.io/gh/pboling/version_gem
370
-
371
- [code_triage]: https://www.codetriage.com/pboling/version_gem
372
-
373
- [blogpage]: http://www.railsbling.com/tags/version_gem/
374
-
421
+ [railsbling]: http://www.railsbling.com
375
422
  [rubygems]: https://rubygems.org/gems/version_gem
376
-
377
- [maintenancee_policy]: https://guides.rubyonrails.org/maintenance_policy.html#security-issues
378
-
379
- [liberapay_donate]: https://liberapay.com/pboling/donate
380
-
381
- [gh_sponsors]: https://github.com/sponsors/pboling
423
+ [security]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/SECURITY.md
424
+ [semver]: http://semver.org/
425
+ [source]: https://gitlab.com/oauth-xx/version_gem
426
+ [tweetme]: http://twitter.com/galtzo
@@ -1,4 +1,5 @@
1
1
  module VersionGem
2
+ # Public API of this library
2
3
  module Api
3
4
  # The version number as a string
4
5
  #
@@ -43,7 +44,7 @@ module VersionGem
43
44
  major: major,
44
45
  minor: minor,
45
46
  patch: patch,
46
- pre: pre
47
+ pre: pre,
47
48
  }
48
49
  end
49
50
 
@@ -60,7 +61,7 @@ module VersionGem
60
61
  #
61
62
  # @return [Array<String>]
62
63
  def _to_a
63
- @_to_a = self::VERSION.split('.')
64
+ @_to_a = self::VERSION.split(".")
64
65
  end
65
66
  end
66
67
  end
@@ -1,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'error'
4
- require_relative 'api'
3
+ require_relative "error"
4
+ require_relative "api"
5
5
 
6
6
  module VersionGem
7
7
  # This is a very *basic* version parser. Others could be built based on this pattern!
8
8
  module Basic
9
- def self.extended(base)
10
- raise Error, "VERSION must be defined before 'extend #{name}'" unless defined?(base::VERSION)
9
+ class << self
10
+ def extended(base)
11
+ raise Error, "VERSION must be defined before 'extend #{name}'" unless defined?(base::VERSION)
11
12
 
12
- base.extend Api
13
+ base.extend(Api)
14
+ end
13
15
  end
14
16
  end
15
17
  end
@@ -1,54 +1,54 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec::Matchers.define :have_version_constant do
3
+ RSpec::Matchers.define(:have_version_constant) do
4
4
  match do |version_mod|
5
5
  version_mod.const_defined?(:VERSION, false)
6
6
  end
7
7
  end
8
8
 
9
- RSpec::Matchers.define :have_version_as_string do
9
+ RSpec::Matchers.define(:have_version_as_string) do
10
10
  match do |version_mod|
11
11
  !version_mod::VERSION.nil? && version_mod::VERSION.is_a?(String)
12
12
  end
13
13
  end
14
14
 
15
- RSpec::Matchers.define :have_major_as_integer do
15
+ RSpec::Matchers.define(:have_major_as_integer) do
16
16
  match do |version_mod|
17
17
  version_mod.major.is_a?(Integer)
18
18
  end
19
19
  end
20
20
 
21
- RSpec::Matchers.define :have_minor_as_integer do
21
+ RSpec::Matchers.define(:have_minor_as_integer) do
22
22
  match do |version_mod|
23
23
  version_mod.minor.is_a?(Integer)
24
24
  end
25
25
  end
26
26
 
27
- RSpec::Matchers.define :have_patch_as_integer do
27
+ RSpec::Matchers.define(:have_patch_as_integer) do
28
28
  match do |version_mod|
29
29
  version_mod.patch.is_a?(Integer)
30
30
  end
31
31
  end
32
32
 
33
- RSpec::Matchers.define :have_pre_as_nil_or_string do
33
+ RSpec::Matchers.define(:have_pre_as_nil_or_string) do
34
34
  match do |version_mod|
35
35
  version_mod.pre.nil? || version_mod.pre.is_a?(String)
36
36
  end
37
37
  end
38
38
 
39
- RSpec.shared_examples_for 'a Version module' do |version_mod|
40
- it 'is introspectable' do
41
- aggregate_failures 'introspectable api' do
39
+ RSpec.shared_examples_for("a Version module") do |version_mod|
40
+ it "is introspectable" do
41
+ aggregate_failures "introspectable api" do
42
42
  expect(version_mod).is_a?(Module)
43
- expect(version_mod).to have_version_constant
44
- expect(version_mod).to have_version_as_string
45
- expect(version_mod.to_s).to be_a(String)
46
- expect(version_mod).to have_major_as_integer
47
- expect(version_mod).to have_minor_as_integer
48
- expect(version_mod).to have_patch_as_integer
49
- expect(version_mod).to have_pre_as_nil_or_string
50
- expect(version_mod.to_h.keys).to match_array(%i[major minor patch pre])
51
- expect(version_mod.to_a).to be_a(Array)
43
+ expect(version_mod).to(have_version_constant)
44
+ expect(version_mod).to(have_version_as_string)
45
+ expect(version_mod.to_s).to(be_a(String))
46
+ expect(version_mod).to(have_major_as_integer)
47
+ expect(version_mod).to(have_minor_as_integer)
48
+ expect(version_mod).to(have_patch_as_integer)
49
+ expect(version_mod).to(have_pre_as_nil_or_string)
50
+ expect(version_mod.to_h.keys).to(match_array(%i[major minor patch pre]))
51
+ expect(version_mod.to_a).to(be_a(Array))
52
52
  end
53
53
  end
54
54
  end
@@ -3,12 +3,12 @@ module VersionGem
3
3
  module Ruby
4
4
  RUBY_VER = ::Gem::Version.new(RUBY_VERSION)
5
5
 
6
- def gte_minimum_version?(version, engine = 'ruby')
6
+ def gte_minimum_version?(version, engine = "ruby")
7
7
  RUBY_VER >= ::Gem::Version.new(version) && ::RUBY_ENGINE == engine
8
8
  end
9
9
  module_function :gte_minimum_version?
10
10
 
11
- def actual_minor_version?(major, minor, engine = 'ruby')
11
+ def actual_minor_version?(major, minor, engine = "ruby")
12
12
  major.to_i == RUBY_VER.segments[0] &&
13
13
  minor.to_i == RUBY_VER.segments[1] &&
14
14
  ::RUBY_ENGINE == engine
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VersionGem
4
4
  module Version
5
- VERSION = '1.1.2'.freeze
5
+ VERSION = "1.1.4"
6
6
  # This would work in this gem, but not in external libraries,
7
7
  # because version files are loaded in Gemspecs before bundler
8
8
  # has a chance to load dependencies.
data/lib/version_gem.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'version_gem/version'
4
- require_relative 'version_gem/basic'
3
+ require_relative "version_gem/version"
4
+ require_relative "version_gem/basic"
5
5
 
6
+ # Namespace of this library
6
7
  module VersionGem
7
8
  end
8
9
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,147 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: version_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
14
14
  ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0yMjA5MTgyMzEyMzBaFw0yMzA5MTgyMzEyMzBaMEMxFTATBgNVBAMM
15
+ A2NvbTAeFw0yMzA5MjAxNzMwMjhaFw0yNDA5MTkxNzMwMjhaMEMxFTATBgNVBAMM
16
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
17
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA+a9UvHo3
18
+ 84k96WgU5Kk5HB+cLZs/modjorsTfqY67MJF5nNvAoqcKTUBW4uG+Zpfnm3jaDO5
19
+ GxhJEIZWfndYzycHT2KMVQ1uTP82ba8ZaKrPlPIafkbui3mdds47qsmqHiblKERg
20
+ U532lkwfqHDlJwE7OBZQ59EwWWLynlT/yAUHpOBbqIuHKUxdpmBI+sIjrZcD1e05
21
+ WmjkO6fwIdC5oM757aoPxIgXD587VOViH11Vkm2doskj4T8yONtwVHlcrrhJ9Bzd
22
+ /zdp6vEn7GZQrABvpOlqwWxQ72ZnFhJe/RJZf6CXOPOh69Ai0QKYl2a1sYuCJKS3
23
+ nsBnxXJINEEznjR7rZjNUmYD+CZqfjzgPqedRxTlASe7iA4w7xZOqMDzcuhNwcUQ
24
+ tMEH6BTktxKP3jXZPXRfHCf6s+HRVb6vezAonTBVyydf5Xp5VwWkd6cwm+2BzHl5
25
+ 7kc/3lLxKMcsyEUprAsk8LdHohwZdC267l+RS++AP6Cz6x+nB3oGob19AgMBAAGj
26
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQCSSas60GqqMjt
27
+ xR7LoY1gucEvtzAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
28
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==
29
+ ggGBAMl9ifcw5p+PdvB7dCPoNKoVdp/2LbC9ztETHuYL2gUMJB6UoS3o9c/piSuR
30
+ V3ZMQaijmNu6ms1bWAtJ66LjmYrVflJtf9yp31Kierr9LpisMSUx2qbMOHGa8d2Z
31
+ vCUWPF8E9Cg0mP3GAyZ6qql8jDh/anUKeksPXqJvNxNPDu2DVYsa/IWdl96whzS4
32
+ Bl7SwB1E7agps40UcshCSKaVDOU0M+XN6SrnJMElnBic+KSAkBkVFbzS0BE4ODZM
33
+ BgE6nYzQ05qhuvbE+oGdACTlemNtDDWCh0uw+7x0q2PocGIDU5zsPn/WNTkCXPmB
34
+ CHGvqDNWq4M7ncTKAaS2XExgyb7uPdq9fKiOW8nmH+zCiGzJXzBWwZlKf7L4Ht9E
35
+ a3f0e5C+zvee9Z5Ng9ciyfav9/fcXgYt5MjoBv27THr5XfBhgOCIHSYW2tqJmWKi
36
+ KuxrfYrN+9HvMdm+nZ6TypmKftHY3Gj+/uu+g8Icm/zrvTWAEE0mcJOkfrIoNPJb
37
+ pF8dMA==
38
38
  -----END CERTIFICATE-----
39
- date: 2023-03-17 00:00:00.000000000 Z
39
+ date: 2024-03-21 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.12'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.12'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-block_is_expected
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-lts
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '8.0'
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: 8.0.2
89
+ version: '0.14'
107
90
  type: :development
108
91
  prerelease: false
109
92
  version_requirements: !ruby/object:Gem::Requirement
110
93
  requirements:
111
94
  - - "~>"
112
95
  - !ruby/object:Gem::Version
113
- version: '8.0'
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: 8.0.2
117
- - !ruby/object:Gem::Dependency
118
- name: rubocop-rspec
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- - !ruby/object:Gem::Dependency
132
- name: rubocop-performance
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
96
+ version: '0.14'
145
97
  description: Versions are good. Versions are cool. Versions will win.
146
98
  email:
147
99
  - peter.boling@gmail.com
@@ -168,15 +120,15 @@ licenses:
168
120
  - MIT
169
121
  metadata:
170
122
  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
123
+ source_code_uri: https://gitlab.com/oauth-xx/version_gem/-/tree/v1.1.4
124
+ changelog_uri: https://gitlab.com/oauth-xx/version_gem/-/blob/v1.1.4/CHANGELOG.md
173
125
  bug_tracker_uri: https://gitlab.com/oauth-xx/version_gem/-/issues
174
- documentation_uri: https://www.rubydoc.info/gems/version_gem/1.1.2
126
+ documentation_uri: https://www.rubydoc.info/gems/version_gem/1.1.4
175
127
  wiki_uri: https://gitlab.com/oauth-xx/version_gem/-/wiki
176
128
  mailing_list_uri: https://groups.google.com/g/oauth-ruby
177
129
  funding_uri: https://liberapay.com/pboling
178
130
  rubygems_mfa_required: 'true'
179
- post_install_message:
131
+ post_install_message:
180
132
  rdoc_options: []
181
133
  require_paths:
182
134
  - lib
@@ -191,8 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
143
  - !ruby/object:Gem::Version
192
144
  version: '0'
193
145
  requirements: []
194
- rubygems_version: 3.4.8
195
- signing_key:
146
+ rubygems_version: 3.5.6
147
+ signing_key:
196
148
  specification_version: 4
197
149
  summary: Enhance your VERSION! Sugar for Version modules.
198
150
  test_files: []
metadata.gz.sig CHANGED
Binary file