ruby_git 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7087b8dd63c3607ba8feab849f53758dab7bd5e9f651d2abde5c0883a0d9540e
4
- data.tar.gz: 7955f33dea5ed42578726c5089d3246322618eeee85a6713c1121fe92f0ef2b5
3
+ metadata.gz: 88ac1dcb3abb6fc749755848f777ebd367e76ef9ae737ef4f778890afd8ff096
4
+ data.tar.gz: ba110f2ac31a96989e6e486a2377f76b080ea03533d304448848bf351ef96988
5
5
  SHA512:
6
- metadata.gz: a52889cbf50620fd7edf6b47ad903554e2ae075d6f822d659640c91db33943110a4795e28f1bc40e57474fad71817adc0a78e3081d718df740d03702cabcd29c
7
- data.tar.gz: db553459c9cea1e038088eb7d9298ee4bd873d6c5e315f937adbdc487981b27a18cf6445aa5228d6bada9d5e70785fc682725ca8697d44335004a5feaf524285
6
+ metadata.gz: f4f1d53fd8cc7c4939e7ccf797e39702a6541159c06673fc5ec8e723629008020d8a0371f0365b0c255bc9eb0af83ed8d6b6dc9dd7f52d3f53d1286c2253be59
7
+ data.tar.gz: 6a11a5211e5554fec26034351e1a7c531ce25d87e9b9c3d3ab53aac3b9569ed997135dfb879c1e3d3a3a80653811ee64082ed4e18baa8a1b300f58ea0d7d1e97
data/.gitignore CHANGED
@@ -14,3 +14,5 @@
14
14
  rubocop-report.json
15
15
 
16
16
  /Gemfile.lock
17
+ .idea
18
+ .irb_history
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper.rb
2
+ --color
3
+ --format documentation
data/.yardopts CHANGED
@@ -2,3 +2,4 @@
2
2
  --hide-void-return
3
3
  --markup-provider=redcarpet
4
4
  --markup markdown
5
+ - CHANGELOG.md CONTRIBUTING.md MAINTAINERS.md RELEASING.md LICENSE.md
@@ -1,9 +1,30 @@
1
1
  # Change Log
2
2
 
3
- ## 0.1.1
3
+ ## [v0.1.2](https://github.com/jcouball/ruby_git/releases/tag/v0.1.2) (2020-09-24)
4
4
 
5
- See https://github.com/jcouball/ruby_git/releases/tag/v0.1.1
5
+ [Full Changelog](https://github.com/jcouball/ruby_git/compare/v0.1.1...v0.1.2)
6
6
 
7
- ## 0.1.0
7
+ **Merged pull requests:**
8
8
 
9
- See https://github.com/jcouball/ruby_git/releases/tag/v0.1.0
9
+ - Update instructions for creating releases and updating the changelog [\#8](https://github.com/jcouball/ruby_git/pull/8) ([jcouball](https://github.com/jcouball))
10
+ - Changes requested in documentation review [\#7](https://github.com/jcouball/ruby_git/pull/7) ([jcouball](https://github.com/jcouball))
11
+ - Set and retrieve the path to the git binary used by this library [\#6](https://github.com/jcouball/ruby_git/pull/6) ([jcouball](https://github.com/jcouball))
12
+ - Move RSpec config from Rakefile to .rspec [\#5](https://github.com/jcouball/ruby_git/pull/5) ([jcouball](https://github.com/jcouball))
13
+ - Release v0.1.1 [\#4](https://github.com/jcouball/ruby_git/pull/4) ([jcouball](https://github.com/jcouball))
14
+
15
+ ## [v0.1.1](https://github.com/jcouball/ruby_git/releases/tag/v0.1.1) (2020-09-18)
16
+
17
+ [Full Changelog](https://github.com/jcouball/ruby_git/compare/v0.1.0...v0.1.1)
18
+
19
+ **Merged pull requests:**
20
+
21
+ - Add notice saying that this project is a work in progress [\#3](https://github.com/jcouball/ruby_git/pull/3) ([jcouball](https://github.com/jcouball))
22
+ - Remove Gemfile.lock and add it to .gitignore [\#2](https://github.com/jcouball/ruby_git/pull/2) ([jcouball](https://github.com/jcouball))
23
+
24
+ ## [v0.1.0](https://github.com/jcouball/ruby_git/releases/tag/v0.1.0) (2020-09-18)
25
+
26
+ [Full Changelog](https://github.com/jcouball/ruby_git/compare/04b4b2bc59b0b09ad45a69572450cb393dbe79a1...v0.1.0)
27
+
28
+
29
+
30
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
@@ -59,7 +59,7 @@ request meets [the project's coding standards](#coding-standards).
59
59
 
60
60
  ## Coding standards
61
61
 
62
- In order to ensure high quality, all pull requests must meet these requirements:
62
+ All pull requests must meet these requirements:
63
63
 
64
64
  ### 1 PR = 1 Commit
65
65
  * All commits for a PR must be squashed into one commit
@@ -76,14 +76,21 @@ In order to ensure high quality, all pull requests must meet these requirements:
76
76
  ### Documentation
77
77
  * New and updated public methods must have [YARD](https://yardoc.org/)
78
78
  documentation added to them
79
+ * [The YARD Cheatsheet](https://gist.github.com/thelastinuit/5984665e6ab69d3c0a413a03602c45be)
80
+ is a good reference
79
81
  * New and updated public facing features should be documented in the project's
80
82
  [README.md](README.md)
81
- * All documentation must pass `yardstick` documentation analysis.
83
+ * All documentation must pass `yardstick` documentation analysis
82
84
  * The documentation suite must maintain 100% documentation to pass
83
85
 
84
86
  ### Continuous Integration
85
87
  * All tests must pass in the project's [Travis CI](https://travis-ci.org/jcouball/ruby_git)
86
- build before the pull request will be merged
88
+ build before the pull request will be merged.
89
+ * You can simulate what happens in the Travis CI build by running `bundle exec rake` in
90
+ the projects root directory.
91
+
92
+ ### Other Design Guidelines
93
+ * Use keyword args with defaults instead of an opts hash
87
94
 
88
95
  ## Licensing
89
96
 
@@ -0,0 +1,8 @@
1
+ # Maintainers
2
+
3
+ When making changes in this repository, one of the maintainers below must review
4
+ and approve your pull request.
5
+
6
+ ### Maintainers
7
+
8
+ * [James Couball](https://github.com/jcouball)
data/README.md CHANGED
@@ -1,12 +1,14 @@
1
- # Ruby Git
1
+ # RubyGit
2
2
 
3
3
  **THIS PROJECT IS A WORK IN PROGRESS AND IS NOT USEFUL IN ITS CURRENT STATE**
4
4
 
5
5
  [![Build Status](https://travis-ci.org/jcouball/ruby_git.svg?branch=main)](https://travis-ci.org/jcouball/ruby_git)
6
6
  [![Maintainability](https://api.codeclimate.com/v1/badges/2d8d52a55d655b6a3def/maintainability)](https://codeclimate.com/github/jcouball/ruby_git/maintainability)
7
7
 
8
- Ruby Git is an object-oriented wrapper for the `git` command line tool for working with Worktrees
9
- and Repositories. It tries to make more sense out of the Git command line.
8
+ RubyGit is an object-oriented wrapper for the `git` command line tool for working with Worktrees
9
+ and Repositories. It tries to make more sense out of the Git command line. See the object model
10
+ in [this Lucid chart diagram](https://app.lucidchart.com/invitations/accept/7df13bab-3383-4683-8cb4-e76d539de93d)
11
+ (requires sign in).
10
12
 
11
13
  ## Installation
12
14
 
@@ -26,6 +28,16 @@ Or install it directly from the command line:
26
28
 
27
29
  ## Usage
28
30
 
31
+ To configure RubyGit:
32
+
33
+ ```Ruby
34
+ RubyGit.git.path = '/usr/local/bin/git'
35
+
36
+ # Returns the user set path or searches for 'git' in ENV['PATH']
37
+ RubyGit.git.path #=> '/usr/local/bin/git'
38
+ RubyGit.git.version #=> [2,28,0]
39
+ ```
40
+
29
41
  To work with an existing Worktree:
30
42
 
31
43
  ```Ruby
@@ -56,14 +68,11 @@ The full API is documented in [the RubyGit YARD documentation](https://github.co
56
68
 
57
69
  ## Development
58
70
 
59
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec`
60
- to run the tests. You can also run `bin/console` for an interactive prompt that will allow
61
- you to experiment.
71
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
72
+ `bundle exec rake` to run tests, static analysis, and build the gem.
62
73
 
63
- To install this gem onto your local machine, run `bundle exec rake install`. To release a
64
- new version, update the version number in `version.rb`, and then run
65
- `bundle exec rake release`, which will create a git tag for the version, push git commits
66
- and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
74
+ For experimentation, you can also run `bin/console` for an interactive (IRB) prompt that
75
+ automatically requires ruby_git.
67
76
 
68
77
  ## Contributing
69
78
 
@@ -10,18 +10,26 @@ and the new release version to be created is `1.1.0.pre1`.
10
10
 
11
11
  ## Prepare the release
12
12
 
13
- From a fork of ruby_git, create a PR containing changes to (1) bump the
14
- version number, (2) update the CHANGELOG.md, and (3) tag the release.
15
-
16
- * Bump the version number in lib/ruby_git/version.rb following [Semantic Versioning](https://semver.org)
17
- guidelines
18
- * Add a link in CHANGELOG.md to the release tag which will be created later
19
- in this guide
20
- * Create a new tag using [git-extras](https://github.com/tj/git-extras/blob/main/Commands.md#git-release)
21
- `git release` command
22
- * For example: `git release v1.1.0.pre1`
23
- * These should be the only changes in the PR
24
- * Get the PR reviewed, approved and merged to main.
13
+ On a branch (or fork) of ruby_git, create a PR containing changes to (1) bump the
14
+ version number and (2) update the CHANGELOG.md, and (3) tag the release.
15
+
16
+ * Bump the version number
17
+ * Version number is in lib/ruby_git/version.rb
18
+ * Follow [Semantic Versioning](https://semver.org) guidelines
19
+ * `bundle exec bump --no-commit patch` # backwards compatible bug fixes
20
+ * `bundle exec bump --no-commit minor` # backwards compatible new functionality
21
+ * `bundle exec bump --no-commit major` # incompatible API changes
22
+
23
+ * Update CHANGELOG.md
24
+ * `bundle exec rake changelog`
25
+
26
+ * Stage the changes to be committed
27
+ * `git add lib/ruby_git/version.rb CHANGELOG.md`
28
+
29
+ * Commit, tag, and push changes to the repository
30
+ * ```git release `ruby -I lib -r ruby_git -e 'puts RubyGit::VERSION'` ```
31
+
32
+ * Create a PR with these changes, have it reviewed and approved, and merged to main.
25
33
 
26
34
  ## Create a GitHub release
27
35
 
@@ -30,14 +38,8 @@ select `Draft a new release`
30
38
 
31
39
  * Select the tag corresponding to the version being released `v1.1.0.pre1`
32
40
  * The Target should be `main`
33
- * For the release description, use the output of [changelog-rs](https://github.com/perlun/changelog-rs)
34
- * Since the release has not been created yet, you will need to supply
35
- `changeling-rs` with the current release tag and the tag the new release
36
- is being created from
37
- * For example: `changelog-rs . v1.0.0 v1.1.0.pre1`
38
- * Copy the output, omitting the tag header `## v1.1.0.pre1` and paste into
39
- the release description
40
- * The release description can be edited later if needed
41
+ * For the release description, copy the relevant section from the CHANGELOG.md
42
+ * The release description can be edited later.
41
43
  * Select the appropriate value for `This is a pre-release`
42
44
  * Since `v1.1.0.pre1` is a pre-release, check `This is a pre-release`
43
45
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- task default: %i[spec bundle:audit rubocop yardstick verify_measurements yard build]
3
+ task default: %i[spec bundle:audit rubocop yardstick:audit yardstick:coverage yard build]
4
4
 
5
5
  # Bundler Audit
6
6
 
@@ -20,13 +20,7 @@ require 'bump/tasks'
20
20
 
21
21
  require 'rspec/core/rake_task'
22
22
 
23
- RSpec::Core::RakeTask.new do |t|
24
- t.rspec_opts = %w[
25
- --require spec_helper.rb
26
- --color
27
- --format documentation
28
- ]
29
- end
23
+ RSpec::Core::RakeTask.new
30
24
 
31
25
  CLEAN << 'coverage'
32
26
  CLEAN << '.rspec_status'
@@ -55,14 +49,30 @@ end
55
49
  CLEAN << '.yardoc'
56
50
  CLEAN << 'doc'
57
51
 
58
- # yardstick
52
+ # Yardstick
53
+
54
+ desc 'Run yardstick to show missing YARD doc elements'
55
+ task :'yardstick:audit' do
56
+ sh "yardstick 'lib/**/*.rb'"
57
+ end
58
+
59
+ # Yardstick coverage
59
60
 
60
61
  require 'yardstick/rake/verify'
61
- Yardstick::Rake::Verify.new do |verify|
62
+
63
+ Yardstick::Rake::Verify.new(:'yardstick:coverage') do |verify|
62
64
  verify.threshold = 100
63
65
  end
64
66
 
65
- desc 'Run yardstick to check yard docs'
66
- task :yardstick do
67
- sh "yardstick 'lib/**/*.rb'"
67
+ # Changelog
68
+
69
+ require 'github_changelog_generator/task'
70
+
71
+ GitHubChangelogGenerator::RakeTask.new :changelog do |config|
72
+ config.header = '# Change Log'
73
+ config.user = 'jcouball'
74
+ config.project = 'ruby_git'
75
+ config.future_release = "v#{RubyGit::VERSION}"
76
+ config.release_url = 'https://github.com/jcouball/ruby_git/releases/tag/%s'
77
+ config.author = true
68
78
  end
@@ -1,7 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'ruby_git/version'
4
+ require 'ruby_git/file_helpers'
5
+ require 'ruby_git/git_binary'
4
6
 
7
+ # RubyGit is an object-oriented wrapper for the `git` command line tool for
8
+ # working with Worktrees and Repositories. It tries to make more sense out
9
+ # of the Git command line.
10
+ #
11
+ # @api public
12
+ #
5
13
  module RubyGit
6
- class Error < StandardError; end
14
+ # Return information about the git binary used by this library
15
+ #
16
+ # Use this object to set the path to the git binary to use or to see the
17
+ # path being used.
18
+ #
19
+ # @example Setting the git binary path
20
+ # RubyGit.git.path = '/usr/local/bin/git'
21
+ #
22
+ # @return [RubyGit::GitBinary]
23
+ #
24
+ def self.git
25
+ (@git ||= RubyGit::GitBinary.new)
26
+ end
7
27
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyGit
4
+ # A namespace for several file utility methods that I wish were part of FileUtils.
5
+ #
6
+ # @api public
7
+ #
8
+ module FileHelpers
9
+ # Cross platform way to find an executable file within a list of paths
10
+ #
11
+ # Works for both Linux/Unix and Windows.
12
+ #
13
+ # @example Searching over the PATH for a command
14
+ # path = FileUtils.which('git')
15
+ #
16
+ # @example Overriding the default PATH
17
+ # path = FileUtils.which('git', ['/usr/bin', '/usr/local/bin'])
18
+ #
19
+ # @param [String] cmd The basename of the executable file to search for
20
+ # @param [Array<String>] paths The list of directories to search for basename in
21
+ # @param [Array<String>] exts The list of extensions that indicate that a file is executable
22
+ #
23
+ # `exts` is for Windows. Other platforms should accept the default.
24
+ #
25
+ # @return [Pathname,nil] The path to the first executable file found on the path or
26
+ # nil an executable file was not found.
27
+ #
28
+ def self.which(
29
+ cmd,
30
+ paths: ENV['PATH'].split(File::PATH_SEPARATOR),
31
+ exts: (ENV['PATHEXT']&.split(';') || [''])
32
+ )
33
+ raise 'PATH is not set' unless ENV.keys.include?('PATH')
34
+
35
+ paths
36
+ .product(exts)
37
+ .map { |path, ext| Pathname.new(File.join(path, "#{cmd}#{ext}")) }
38
+ .reject { |path| path.directory? || !path.executable? }
39
+ .find { |exe_path| !exe_path.directory? && exe_path.executable? }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyGit
4
+ # Sets and tracks the path to a git executable and reports the version
5
+ #
6
+ # @api public
7
+ #
8
+ class GitBinary
9
+ # Return a new GitBinary object
10
+ #
11
+ # @example
12
+ # GitBinary.new
13
+ #
14
+ def initialize
15
+ @path = nil
16
+ end
17
+
18
+ # Sets the path to the git binary
19
+ #
20
+ # The given path must point to an executable file or a RuntimeError is raised.
21
+ #
22
+ # @example Setting the path to the git binary
23
+ # git.path = '/usr/local/bin/git'
24
+ #
25
+ # @param [String] path the path to a git executable
26
+ #
27
+ # @return [Pathname]
28
+ #
29
+ # @raise [RuntimeError] A RuntimeError is raised when the path does not refer
30
+ # to an existing executable file.
31
+ #
32
+ def path=(path)
33
+ new_path = Pathname.new(path)
34
+ raise "'#{new_path}' does not exist." unless new_path.exist?
35
+ raise "'#{new_path}' is not a file." unless new_path.file?
36
+ raise "'#{new_path}' is not executable." unless new_path.executable?
37
+
38
+ @path = new_path
39
+ end
40
+
41
+ # Retrieve the path to the git binary
42
+ #
43
+ # @example Get the git found on the PATH
44
+ # git = RubyGit::GitBinary.new
45
+ # path = git.path
46
+ #
47
+ # @return [Pathname] the path to the git binary
48
+ #
49
+ # @raise [RuntimeError] if path was not set via `path=` and either PATH is not set
50
+ # or git was not found on the path.
51
+ #
52
+ def path
53
+ @path || (@path = self.class.default_path)
54
+ end
55
+
56
+ # Get the default path to to a git binary by searching the PATH
57
+ #
58
+ # @example Find the pathname to `super_git`
59
+ # git = RubyGit::GitBinary.new
60
+ # git.path = git.default_path(basename: 'super_git')
61
+ #
62
+ # @param [String] basename The basename of the git command
63
+ #
64
+ # @return [Pathname] the path to the git binary found in the path
65
+ #
66
+ # @raise [RuntimeError] if either PATH is not set or an executable file
67
+ # `basename` was not found on the path.
68
+ #
69
+ def self.default_path(basename: 'git')
70
+ RubyGit::FileHelpers.which(basename) || raise("Could not find '#{basename}' in the PATH.")
71
+ end
72
+
73
+ # The version of git referred to by the path
74
+ #
75
+ # @example for version 2.28.0
76
+ # git = RubyGit::GitBinary.new
77
+ # puts git.version #=> [2,28,0]
78
+ #
79
+ # @return [Array<Integer>] an array of integers representing the version.
80
+ #
81
+ # @raise [RuntimeError] if path was not set via `path=` and either PATH is not set
82
+ # or git was not found on the path.
83
+ #
84
+ def version
85
+ output = `#{path} --version`
86
+ version = output[/\d+\.\d+(\.\d+)+/]
87
+ version.split('.').collect(&:to_i)
88
+ end
89
+ end
90
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyGit
4
- VERSION = '0.1.1'
4
+ # The ruby_git gem version
5
+ #
6
+ VERSION = '0.1.2'
5
7
  end
@@ -18,7 +18,12 @@ Gem::Specification.new do |spec|
18
18
  DESCRIPTION
19
19
  spec.homepage = 'https://github.com/pages/jcouball/ruby_git/'
20
20
  spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
21
- spec.requirements = ['git 2.18.0 or later']
21
+ spec.requirements = [
22
+ 'Git 2.18.0 or later',
23
+ 'Ruby 2.6 or later',
24
+ 'Only MRI Ruby and JRuby are officially supported.',
25
+ 'Mac, Linux, Unix, and Windows platforms are supported'
26
+ ]
22
27
 
23
28
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
24
29
 
@@ -37,6 +42,7 @@ Gem::Specification.new do |spec|
37
42
 
38
43
  spec.add_development_dependency 'bump', '~> 0.9'
39
44
  spec.add_development_dependency 'bundler-audit', '~> 0.7'
45
+ spec.add_development_dependency 'github_changelog_generator', '~> 1.15'
40
46
  spec.add_development_dependency 'rake', '~> 13.0'
41
47
  spec.add_development_dependency 'redcarpet', '~> 3.5'
42
48
  spec.add_development_dependency 'rspec', '~> 3.9'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Couball
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-18 00:00:00.000000000 Z
11
+ date: 2020-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bump
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: github_changelog_generator
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.15'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.15'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +162,7 @@ extensions: []
148
162
  extra_rdoc_files: []
149
163
  files:
150
164
  - ".gitignore"
165
+ - ".rspec"
151
166
  - ".rubocop.yml"
152
167
  - ".travis.yml"
153
168
  - ".yardopts"
@@ -156,6 +171,7 @@ files:
156
171
  - Gemfile
157
172
  - ISSUE_TEMPLATE.md
158
173
  - LICENSE.md
174
+ - MAINTAINERS.md
159
175
  - PULL_REQUEST_TEMPLATE.md
160
176
  - README.md
161
177
  - RELEASING.md
@@ -163,6 +179,8 @@ files:
163
179
  - bin/console
164
180
  - bin/setup
165
181
  - lib/ruby_git.rb
182
+ - lib/ruby_git/file_helpers.rb
183
+ - lib/ruby_git/git_binary.rb
166
184
  - lib/ruby_git/version.rb
167
185
  - pre-commit
168
186
  - ruby_git.gemspec
@@ -189,7 +207,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
207
  - !ruby/object:Gem::Version
190
208
  version: '0'
191
209
  requirements:
192
- - git 2.18.0 or later
210
+ - Git 2.18.0 or later
211
+ - Ruby 2.6 or later
212
+ - Only MRI Ruby and JRuby are officially supported.
213
+ - Mac, Linux, Unix, and Windows platforms are supported
193
214
  rubygems_version: 3.1.2
194
215
  signing_key:
195
216
  specification_version: 4