version_gem 1.1.2 → 1.1.4

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