version-gem-1.1.1/0000755000175000017500000000000014331276541013017 5ustar tunjitunjiversion-gem-1.1.1/data.tar.gz.sig0000444000175000017500000000060014331276541015632 0ustar tunjitunji WK˾sxįpJ8o,0me%.w!4ҔE*ɋKFh'8+XށwAq$@a=1z7 ^ÓŅd gG|MZ,C{`+>W+?version-gem-1.1.1/CONTRIBUTING.md0000644000175000017500000000164414331276541015255 0ustar tunjitunji## Contributing Bug reports and pull requests are welcome on GitHub at [https://github.com/pboling/version_gem][source] . This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct][conduct]. To submit a patch, please fork the project and create a patch with tests. Once you're happy with it send a pull request! ## Contributors [![Contributors](https://contrib.rocks/image?repo=pboling/version_gem)][contributors] Made with [contributors-img][contrib-rocks]. [comment]: <> (Following links are used by README, CONTRIBUTING) [conduct]: https://github.com/pboling/version_gem/blob/main/CODE_OF_CONDUCT.md [contrib-rocks]: https://contrib.rocks [contributors]: https://github.com/pboling/version_gem/graphs/contributors [comment]: <> (Following links are used by README, CONTRIBUTING, Homepage) [source]: https://github.com/pboling/version_gem version-gem-1.1.1/README.md0000644000175000017500000004270114331276541014302 0ustar tunjitunji# VersionGem ## Alternatives This gem has a very niche purpose, which is: 1. providing introspection of a `Version` module based on a `Version::VERSION` constant string, 2. while not interfering with `gemspec` parsing where the `VERSION` string is traditionally used. If this isn't **precisely** your use case you may be better off looking at [`Versionaire`](https://www.alchemists.io/projects/versionaire), a wonderful, performant, well-maintained, gem from the Alchemists. For more discussion about this [see issue #2](https://github.com/pboling/version_gem/issues/2) ## Still here? Give your next library an introspectable `Version` module without breaking your Gemspec. ```ruby MyLib::Version.to_s # => "1.2.3.rc3" MyLib::Version.major # => 1 MyLib::Version.minor # => 2 MyLib::Version.patch # => 3 MyLib::Version.pre # => "rc3" MyLib::Version.to_a # => [1, 2, 3, "rc3"] MyLib::Version.to_h # => { major: 1, minor: 2, patch: 3, pre: "rc3" } ``` This library was extracted from the gem [`oauth2`](https://github.com/oauth-xx/oauth2). This gem has no runtime dependencies. | | Project | bundle add version_gem | |:----|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 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] | | 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] | | 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] | | 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] | | 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] | | 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] | | 7️⃣ | spread 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Tweet @ Peter][🏘tweet-img]][🏘tweet] [🌏][aboutme] [👼][angelme] [💻][coderme] | [⛳️gem]: https://rubygems.org/gems/version_gem [⛳️name-img]: https://img.shields.io/badge/name-version_gem-brightgreen.svg?style=flat [🖇src-license]: https://opensource.org/licenses/MIT [🖇src-license-img]: https://img.shields.io/badge/License-MIT-green.svg [🚎yard]: https://www.rubydoc.info/github/pboling/version_gem [🚎yard-img]: https://img.shields.io/badge/documentation-rubydoc-brightgreen.svg?style=flat [🧮semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat [⛳️version-img]: http://img.shields.io/gem/v/version_gem.svg [🖇DL-total-img]: https://img.shields.io/gem/dt/version_gem.svg [🏘DL-rank-img]: https://img.shields.io/gem/rt/version_gem.svg [🚎src-home]: https://github.com/pboling/version_gem [🚎src-home-img]: https://img.shields.io/badge/source-github-brightgreen.svg?style=flat [🖐prs-o]: https://github.com/pboling/version_gem/pulls [🖐prs-o-img]: https://img.shields.io/github/issues-pr/pboling/version_gem [🧮prs-c]: https://github.com/pboling/version_gem/pulls?q=is%3Apr+is%3Aclosed [🧮prs-c-img]: https://img.shields.io/github/issues-pr-closed/pboling/version_gem [📗next]: https://github.com/pboling/version_gem/milestone/1 [📗next-img]: https://img.shields.io/github/milestones/progress/pboling/version_gem/1?label=Next%20Version [⛳cclim-maint]: https://codeclimate.com/github/pboling/version_gem/maintainability [⛳cclim-maint-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/maintainability [🖇triage-help]: https://www.codetriage.com/pboling/version_gem [🖇triage-help-img]: https://www.codetriage.com/pboling/version_gem/badges/users.svg [🏘depfu♻️]: https://depfu.com/github/pboling/version_gem?project_id=35803 [🏘depfu-img♻️]: https://badges.depfu.com/badges/5d8943de6cfdf1ee048ad6d907f3e35b/count.svg [🚎contributors]: https://github.com/pboling/version_gem/graphs/contributors [🚎contributors-img]: https://img.shields.io/github/contributors-anon/pboling/version_gem [🖐style-wf]: https://github.com/pboling/version_gem/actions/workflows/style.yml [🖐style-wf-img]: https://github.com/pboling/version_gem/actions/workflows/style.yml/badge.svg [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ [🧮kloc-img]: https://img.shields.io/tokei/lines/github.com/pboling/version_gem [⛳iss-o]: https://github.com/pboling/version_gem/issues [⛳iss-o-img]: https://img.shields.io/github/issues-raw/pboling/version_gem [🖇iss-c]: https://github.com/pboling/version_gem/issues?q=is%3Aissue+is%3Aclosed [🖇iss-c-img]: https://img.shields.io/github/issues-closed-raw/pboling/version_gem [🏘sup-wf]: https://github.com/pboling/version_gem/actions/workflows/supported.yml [🏘sup-wf-img]: https://github.com/pboling/version_gem/actions/workflows/supported.yml/badge.svg [🚎heads-wf]: https://github.com/pboling/version_gem/actions/workflows/heads.yml [🚎heads-wf-img]: https://github.com/pboling/version_gem/actions/workflows/heads.yml/badge.svg [🖐uns-wf]: https://github.com/pboling/version_gem/actions/workflows/unsupported.yml [🖐uns-wf-img]: https://github.com/pboling/version_gem/actions/workflows/unsupported.yml/badge.svg [🧮mac-wf]: https://github.com/pboling/version_gem/actions/workflows/macos.yml [🧮mac-wf-img]: https://github.com/pboling/version_gem/actions/workflows/macos.yml/badge.svg [📗win-wf]: https://github.com/pboling/version_gem/actions/workflows/windows.yml [📗win-wf-img]: https://github.com/pboling/version_gem/actions/workflows/windows.yml/badge.svg [⛳cclim-cov]: https://codeclimate.com/github/pboling/version_gem/test_coverage [⛳cclim-cov-img♻️]: https://api.codeclimate.com/v1/badges/b504d61c4ed1d46aec02/test_coverage [🖇codecov-img♻️]: https://codecov.io/gh/pboling/version_gem/branch/main/graph/badge.svg?token=79c3X4vtfO [🖇codecov]: https://codecov.io/gh/pboling/version_gem [🏘coveralls]: https://coveralls.io/github/pboling/version_gem?branch=main [🏘coveralls-img]: https://coveralls.io/repos/github/pboling/version_gem/badge.svg?branch=main [🚎sec-pol]: https://github.com/pboling/version_gem/blob/main/SECURITY.md [🚎sec-pol-img]: https://img.shields.io/badge/security-policy-brightgreen.svg?style=flat [🖐codeQL]: https://github.com/pboling/version_gem/security/code-scanning [🖐codeQL-img]: https://github.com/pboling/version_gem/actions/workflows/codeql-analysis.yml/badge.svg [🧮cov-wf]: https://github.com/pboling/version_gem/actions/workflows/coverage.yml [🧮cov-wf-img]: https://github.com/pboling/version_gem/actions/workflows/coverage.yml/badge.svg [⛳gh-discussions]: https://github.com/pboling/version_gem/discussions [⛳gh-discussions-img]: https://img.shields.io/github/discussions/pboling/version_gem [🖇codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github [🖇codementor-img]: https://cdn.codementor.io/badges/get_help_github.svg [🏘chat]: https://gitter.im/pboling/version_gem [🏘chat-img]: https://img.shields.io/gitter/room/pboling/version_gem.svg [🚎blog]: http://www.railsbling.com/tags/version_gem/ [🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat [🖐wiki]: https://github.com/pboling/version_gem/wiki [🖐wiki-img]: https://img.shields.io/badge/wiki-examples-brightgreen.svg?style=flat [⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay [⛳liberapay]: https://liberapay.com/pboling/donate [🖇sponsor-img]: https://img.shields.io/badge/sponsor-pboling.svg?style=social&logo=github [🖇sponsor]: https://github.com/sponsors/pboling [🏘tweet-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow [🏘tweet]: http://twitter.com/galtzo [railsbling]: http://www.railsbling.com [peterboling]: http://www.peterboling.com [aboutme]: https://about.me/peter.boling [angelme]: https://angel.co/peter-boling [coderme]:http://coderwall.com/pboling ## Installation Install the gem and add to the application's Gemfile by executing: $ bundle add version_gem If bundler is not being used to manage dependencies, install the gem by executing: $ gem install version_gem ## Usage In the standard `bundle gem my_lib` code you get the following in `lib/my_lib/version.rb`: ```ruby module MyLib VERSION = "0.1.0" end ``` Change it to a nested `Version` namespace (the one implied by the path => namespace convention): ```ruby module MyLib module Version VERSION = "0.1.0" end end ``` Now add the following near the top of the file the manages requiring external libraries. Using the same example of `bundle gem my_lib`, this would be `lib/my_lib.rb`. ```ruby require "version_gem" ``` Then, add the following wherever you want in the same file (recommend the bottom). ```ruby MyLib::Version.class_eval do extend VersionGem::Basic end ``` And now you have some version introspection methods available: ```ruby MyLib::Version.to_s # => "0.1.0" MyLib::Version.major # => 0 MyLib::Version.minor # => 1 MyLib::Version.patch # => 0 MyLib::Version.pre # => "" MyLib::Version.to_a # => [0, 1, 0] MyLib::Version.to_h # => { major: 0, minor: 1, patch: 0, pre: "" } ``` ### Side benefit Your `version.rb` file now abides the Ruby convention of directory / path matching the namespace / class! ### Caveat This design keeps your `version.rb` file compatible with the way `gemspec` files use them. This means that the introspection is _not_ available within the gemspec. The enhancement from this gem is only available at runtime. ### RSpec Matchers In `spec_helper.rb`: ```ruby require 'version_gem/rspec' ``` Then you can write a test like: ```ruby RSpec.describe MyLib::Version do it_behaves_like 'a Version module', described_class end # Or, if you want to write your own, here is the a la carte menu: RSpec.describe MyLib::Version do it "is a Version module" do expect(described_class).is_a?(Module) expect(described_class).to have_version_constant expect(described_class).to have_version_as_string expect(described_class.to_s).to be_a(String) expect(described_class).to have_major_as_integer expect(described_class).to have_minor_as_integer expect(described_class).to have_patch_as_integer expect(described_class).to have_pre_as_nil_or_string expect(described_class.to_h.keys).to match_array(%i[major minor patch pre]) expect(described_class.to_a).to be_a(Array) end end ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing See [CONTRIBUTING.md][contributing] ## Contributors [![Contributors](https://contrib.rocks/image?repo=pboling/version_gem)]("https://github.com/pboling/version_gem/graphs/contributors") Made with [contributors-img](https://contrib.rocks). ## License The gem is available as open source under the terms of the [MIT License][license] [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)][license-ref]. See [LICENSE][license] for the official [Copyright Notice][copyright-notice-explainer]. * Copyright (c) 2022 [Peter H. Boling][peterboling] of [Rails Bling][railsbling] ## Code of Conduct 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). ## Versioning This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations of this scheme should be reported as bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new major versions. As a result of this policy, you can (and should) specify a dependency on this gem using the [Pessimistic Version Constraint][pvc] with two digits of precision. For example: ```ruby spec.add_dependency "version_gem", "~> 1.1" ``` ## Security See [SECURITY.md](https://github.com/pboling/version_gem/blob/main/SECURITY.md). [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year [gh_discussions]: https://github.com/pboling/version_gem/discussions [conduct]: https://github.com/pboling/version_gem/blob/main/CODE_OF_CONDUCT.md [contributing]: https://github.com/pboling/version_gem/blob/main/CONTRIBUTING.md [security]: https://github.com/pboling/version_gem/blob/main/SECURITY.md [license]: https://github.com/pboling/version_gem/blob/main/LICENSE.txt [license-ref]: https://opensource.org/licenses/MIT [semver]: http://semver.org/ [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint [aboutme]: https://about.me/peter.boling [angelme]: https://angel.co/peter-boling [coderme]:http://coderwall.com/pboling [followme-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow [tweetme]: http://twitter.com/galtzo [politicme]: https://nationalprogressiveparty.org [documentation]: https://rubydoc.info/github/pboling/version_gem/main [source]: https://github.com/pboling/version_gem/ [actions]: https://github.com/pboling/version_gem/actions [issues]: https://github.com/pboling/version_gem/issues [climate_maintainability]: https://codeclimate.com/github/pboling/version_gem/maintainability [climate_coverage]: https://codeclimate.com/github/pboling/version_gem/test_coverage [codecov_coverage]: https://codecov.io/gh/pboling/version_gem [code_triage]: https://www.codetriage.com/pboling/version_gem [blogpage]: http://www.railsbling.com/tags/version_gem/ [rubygems]: https://rubygems.org/gems/version_gem [chat]: https://gitter.im/pboling/version_gem?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge [maintenancee_policy]: https://guides.rubyonrails.org/maintenance_policy.html#security-issues [liberapay_donate]: https://liberapay.com/pboling/donate [gh_sponsors]: https://github.com/sponsors/pboling version-gem-1.1.1/metadata.gz.sig0000444000175000017500000000060014331276541015714 0ustar tunjitunji$MB|G*屽EM.|.X0m,{sp  ŒdJXM)}-P q;64;z%\"xP±d6 IX5N]-.B$Ff*}S8#w\3ũ4A$TWM>:Q(t]AEPF&oX4t{sG >L2/05.J={'1ܹLy*;9~^Z@`] def to_a @to_a ||= [major, minor, patch, pre] end private # The version number as an array of strings # # @return [Array] def _to_a @_to_a = self::VERSION.split('.') end end end version-gem-1.1.1/lib/version_gem/rspec.rb0000644000175000017500000000274514331276541017553 0ustar tunjitunji# frozen_string_literal: true RSpec::Matchers.define :have_version_constant do match do |version_mod| version_mod.const_defined?(:VERSION, false) end end RSpec::Matchers.define :have_version_as_string do match do |version_mod| !version_mod::VERSION.nil? && version_mod::VERSION.is_a?(String) end end RSpec::Matchers.define :have_major_as_integer do match do |version_mod| version_mod.major.is_a?(Integer) end end RSpec::Matchers.define :have_minor_as_integer do match do |version_mod| version_mod.minor.is_a?(Integer) end end RSpec::Matchers.define :have_patch_as_integer do match do |version_mod| version_mod.patch.is_a?(Integer) end end RSpec::Matchers.define :have_pre_as_nil_or_string do match do |version_mod| version_mod.pre.nil? || version_mod.pre.is_a?(String) end end RSpec.shared_examples_for 'a Version module' do |version_mod| it 'is introspectable' do aggregate_failures 'introspectable api' do expect(version_mod).is_a?(Module) expect(version_mod).to have_version_constant expect(version_mod).to have_version_as_string expect(version_mod.to_s).to be_a(String) expect(version_mod).to have_major_as_integer expect(version_mod).to have_minor_as_integer expect(version_mod).to have_patch_as_integer expect(version_mod).to have_pre_as_nil_or_string expect(version_mod.to_h.keys).to match_array(%i[major minor patch pre]) expect(version_mod.to_a).to be_a(Array) end end end version-gem-1.1.1/lib/version_gem.rb0000644000175000017500000000030414331276541016424 0ustar tunjitunji# frozen_string_literal: true require_relative 'version_gem/version' require_relative 'version_gem/basic' module VersionGem end VersionGem::Version.class_eval do extend VersionGem::Basic end version-gem-1.1.1/version_gem.gemspec0000644000175000017500000001066414331276541016710 0ustar tunjitunji######################################################### # This file has been automatically generated by gem2tgz # ######################################################### # -*- encoding: utf-8 -*- # stub: version_gem 1.1.1 ruby lib Gem::Specification.new do |s| s.name = "version_gem".freeze s.version = "1.1.1" s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.metadata = { "bug_tracker_uri" => "https://gitlab.com/oauth-xx/version_gem/-/issues", "changelog_uri" => "https://gitlab.com/oauth-xx/version_gem/-/blob/v1.1.1/CHANGELOG.md", "documentation_uri" => "https://www.rubydoc.info/gems/version_gem/1.1.1", "funding_uri" => "https://liberapay.com/pboling", "homepage_uri" => "https://gitlab.com/oauth-xx/version_gem", "mailing_list_uri" => "https://groups.google.com/g/oauth-ruby", "rubygems_mfa_required" => "true", "source_code_uri" => "https://gitlab.com/oauth-xx/version_gem/-/tree/v1.1.1", "wiki_uri" => "https://gitlab.com/oauth-xx/version_gem/-/wiki" } if s.respond_to? :metadata= s.require_paths = ["lib".freeze] s.authors = ["Peter Boling".freeze] s.cert_chain = ["-----BEGIN CERTIFICATE-----\nMIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl\nci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW\nA2NvbTAeFw0yMjA5MTgyMzEyMzBaFw0yMzA5MTgyMzEyMzBaMEMxFTATBgNVBAMM\nDHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy\nLGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2Dn1GM3W\n8K2/rvN1zz+06bQMcxD16ZKTihVwi7Pb1v3T98rM4Omnxohm3s+CwpDWGeiB9pj6\n0I/CTce0e4e3s8GKJSOrg93veImPSoH2PfsMsRsuB8wtqyiOCjLbF5o6S29x87r0\nLA5EawH+Lh4xqrkkPjdffsmLk7TaCig/vlmNvnzxXKBdey/X/aEJZXzzBiWRfVdh\nO1fmMbVKyieGv9HK7+pLotIoT08bjDv8NP6V7zZslwQRqW27bQc6cqC2LGIbTYO3\n3jt1kQxfMWmhOictS6SzG9VtKSrXf0L4Neq0Gh7CLBZBvJFWJYZPfb92YNITDbd8\nemPOAQlXXNMN4mMXsEqtEhCPZRMnmwO+fOk/cC4AyglKi9lnQugCQoFV1XDMZST/\nCYbzdQyadOdPDInTntG6V+Uw51d2QGXZ6PDDfrx9+toc/3sl5h68rCUGgE6Q3jPz\nsrinqmBsxv2vTpmd4FjmiAtEnwH5/ooLpQYL8UdAjEoeysxS3AwIh+5dAgMBAAGj\nfzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQWU6D156a2cle+\nlb5RBfvVXlxTwjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG\nA1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD\nggGBAJ4SqhPlgUiLYIrphGXIaxXScHyvx4kixuvdrwhI4VoQV2qXvO7R6ZjOXVwX\nf/z84BWPiTZ8lzThPbt1UV/BGwkvLw9I4RjOdzvUz3J42j9Ly6q63isall07bo3F\nQWe/OBvIMBF1IbjC3q5vKPg4rq8+TkNRJNoE86U2gfR+PkW3jYYs9uiy0GloHDCP\nk5xgaj0vSL0Uy5mTOPdk3K6a/sUGZyYniWK05zdhIi956ynhfGaFO988FFdVw5Jq\nLHtXfIpAU8F7ES04syZSslxOluw7VlcSKyRdVIr737J92ZTduppB4PRGSKRgBsWV\nhXTahRE72Kyw53Q7FAuzF3v102WxAAQ7BuMjW+MyCUT75fwPm3W4ELPL8HYkNGE7\n2oA5CPghFitRnvYS3GNrDG+9bNiRMEskeaBYwZ9UgReBQIwGYVj7LZk3UhiAsn44\ngwGrEXGQGDZ0NIgBcmvMOqlXjkGQwQvugKycJ024z89+fz2332vdZIKTrSxJrXGk\n4/bR9A==\n-----END CERTIFICATE-----\n".freeze] s.date = "2022-09-19" s.description = "Versions are good. Versions are cool. Versions will win.".freeze s.email = ["peter.boling@gmail.com".freeze, "oauth-ruby@googlegroups.com".freeze] s.files = ["CHANGELOG.md".freeze, "CODE_OF_CONDUCT.md".freeze, "CONTRIBUTING.md".freeze, "LICENSE.txt".freeze, "README.md".freeze, "SECURITY.md".freeze, "lib/version_gem.rb".freeze, "lib/version_gem/api.rb".freeze, "lib/version_gem/basic.rb".freeze, "lib/version_gem/error.rb".freeze, "lib/version_gem/rspec.rb".freeze, "lib/version_gem/version.rb".freeze] s.homepage = "https://gitlab.com/oauth-xx/version_gem".freeze s.licenses = ["MIT".freeze] s.required_ruby_version = Gem::Requirement.new(">= 2.2".freeze) s.rubygems_version = "3.3.15".freeze s.summary = "Enhance your VERSION! Sugar for Version modules.".freeze if s.respond_to? :specification_version then s.specification_version = 4 end if s.respond_to? :add_runtime_dependency then s.add_development_dependency(%q.freeze, [">= 0"]) s.add_development_dependency(%q.freeze, [">= 0"]) s.add_development_dependency(%q.freeze, [">= 0"]) s.add_development_dependency(%q.freeze, ["~> 8.0", ">= 8.0.2"]) s.add_development_dependency(%q.freeze, [">= 0"]) s.add_development_dependency(%q.freeze, [">= 0"]) else s.add_dependency(%q.freeze, [">= 0"]) s.add_dependency(%q.freeze, [">= 0"]) s.add_dependency(%q.freeze, [">= 0"]) s.add_dependency(%q.freeze, ["~> 8.0", ">= 8.0.2"]) s.add_dependency(%q.freeze, [">= 0"]) s.add_dependency(%q.freeze, [">= 0"]) end end version-gem-1.1.1/SECURITY.md0000644000175000017500000000053514331276541014613 0ustar tunjitunji# Security Policy ## Supported Versions | Version | Supported | |----------|-----------| | 1.latest | ✅ | ## Reporting a Vulnerability Peter Boling is the primary maintainer of this gem. Please find a way to [contact him directly](https://railsbling.com/contact) to report the issue. Include as much relevant information as possible. version-gem-1.1.1/checksums.yaml.gz.sig0000444000175000017500000000060014331276541017062 0ustar tunjitunjif$28"*H&hmQ(\r%D:)0eK'@͛6Wt}Ƈ&}]?TLMT@5ug)ܛvMjk/R}yN8Q lqujGǜ)%xRRn~LC6[k)(DGRy99Sm6^鸐 nh="R,\9x@HXw5Kٗ9Iw0,[ͩC<-ޛ-$Y֤ ORg yA^}ޘu)!NYPofH3>P2;X/]rzKhV7w|Z@J5^}q0|@b τr'version-gem-1.1.1/CODE_OF_CONDUCT.md0000644000175000017500000001214414331276541015620 0ustar tunjitunji# Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at peter.boling@gmail.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.