thor-zsh_completion 0.1.0 → 0.1.6
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 +5 -5
- data/.rubocop.yml +127 -0
- data/CHANGELOG.md +34 -0
- data/Gemfile +6 -1
- data/README.md +5 -0
- data/bin/rspec +29 -0
- data/bin/rubocop +29 -0
- data/lib/thor/zsh_completion/generator.rb +54 -22
- data/lib/thor/zsh_completion/template/main.erb +0 -2
- data/lib/thor/zsh_completion/template/subcommand_function.erb +12 -4
- data/lib/thor/zsh_completion/version.rb +1 -1
- data/thor-zsh_completion.gemspec +7 -10
- metadata +10 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a14bd88f01d2f3389989eb8325cf4fefeb441bf73678a9e35665f27d4420a052
|
4
|
+
data.tar.gz: 632f050d06d11c50355e318867037ec31a1b53e151e379c21b85d66bf739dc33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cf2c8c5c8cf1f61851bec0570810ba00e628d2374b7c7a05e812dce088d94edc80933debe86c70f9a937eeac9d6621737208f54d4fb12b3fd150ddcf6400188
|
7
|
+
data.tar.gz: 9015c85103b6a35f150bc74bd139194b22a7102dd8b76d82c9227e92079e27f1e5cf50cd50ad9cf6d4a9ae209a9d3b7b51046a3c1265faaff1908ba4ff9ddbfe
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- bin/*
|
4
|
+
- node_modules/**/*
|
5
|
+
NewCops: enable
|
6
|
+
|
7
|
+
Layout/CaseIndentation:
|
8
|
+
EnforcedStyle: end
|
9
|
+
|
10
|
+
Layout/EndAlignment:
|
11
|
+
EnforcedStyleAlignWith: variable
|
12
|
+
|
13
|
+
Layout/LineLength:
|
14
|
+
Enabled: false
|
15
|
+
|
16
|
+
Layout/EmptyLinesAroundAccessModifier:
|
17
|
+
EnforcedStyle: only_before
|
18
|
+
|
19
|
+
Layout/SpaceInLambdaLiteral:
|
20
|
+
EnforcedStyle: require_space
|
21
|
+
|
22
|
+
Layout/SpaceInsideBlockBraces:
|
23
|
+
SpaceBeforeBlockParameters: false
|
24
|
+
|
25
|
+
Layout/SpaceInsideHashLiteralBraces:
|
26
|
+
EnforcedStyle: no_space
|
27
|
+
|
28
|
+
Metrics/AbcSize:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Metrics/BlockLength:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Metrics/ClassLength:
|
35
|
+
Enabled: false
|
36
|
+
|
37
|
+
Metrics/CyclomaticComplexity:
|
38
|
+
Enabled: false
|
39
|
+
|
40
|
+
Metrics/MethodLength:
|
41
|
+
Enabled: false
|
42
|
+
|
43
|
+
Metrics/ModuleLength:
|
44
|
+
Enabled: false
|
45
|
+
|
46
|
+
Metrics/PerceivedComplexity:
|
47
|
+
Enabled: false
|
48
|
+
|
49
|
+
Naming/HeredocDelimiterNaming:
|
50
|
+
Enabled: false
|
51
|
+
|
52
|
+
Naming/MethodParameterName:
|
53
|
+
Enabled: false
|
54
|
+
|
55
|
+
Naming/PredicateName:
|
56
|
+
Enabled: false
|
57
|
+
|
58
|
+
Style/Alias:
|
59
|
+
EnforcedStyle: prefer_alias_method
|
60
|
+
|
61
|
+
Style/AsciiComments:
|
62
|
+
Enabled: false
|
63
|
+
|
64
|
+
Style/BlockDelimiters:
|
65
|
+
Enabled: false
|
66
|
+
|
67
|
+
Style/Documentation:
|
68
|
+
Enabled: false
|
69
|
+
|
70
|
+
Style/EmptyCaseCondition:
|
71
|
+
Enabled: false
|
72
|
+
|
73
|
+
Style/EmptyMethod:
|
74
|
+
EnforcedStyle: expanded
|
75
|
+
|
76
|
+
Style/FrozenStringLiteralComment:
|
77
|
+
Enabled: false
|
78
|
+
|
79
|
+
Style/HashSyntax:
|
80
|
+
Exclude:
|
81
|
+
- Rakefile
|
82
|
+
- "**/*.rake"
|
83
|
+
|
84
|
+
Style/Lambda:
|
85
|
+
EnforcedStyle: literal
|
86
|
+
|
87
|
+
Style/IfUnlessModifier:
|
88
|
+
Enabled: false
|
89
|
+
|
90
|
+
Style/MultilineBlockChain:
|
91
|
+
Enabled: false
|
92
|
+
|
93
|
+
Style/NumericLiterals:
|
94
|
+
Enabled: false
|
95
|
+
|
96
|
+
Style/NumericPredicate:
|
97
|
+
Enabled: false
|
98
|
+
|
99
|
+
Style/PercentLiteralDelimiters:
|
100
|
+
PreferredDelimiters:
|
101
|
+
'%i': '()'
|
102
|
+
'%w': '()'
|
103
|
+
'%r': '()'
|
104
|
+
|
105
|
+
Style/SpecialGlobalVars:
|
106
|
+
Enabled: false
|
107
|
+
|
108
|
+
Style/StringLiterals:
|
109
|
+
EnforcedStyle: double_quotes
|
110
|
+
|
111
|
+
Style/StringLiteralsInInterpolation:
|
112
|
+
EnforcedStyle: double_quotes
|
113
|
+
|
114
|
+
Style/SymbolArray:
|
115
|
+
Enabled: false
|
116
|
+
|
117
|
+
Style/TrailingCommaInArguments:
|
118
|
+
EnforcedStyleForMultiline: consistent_comma
|
119
|
+
|
120
|
+
Style/TrailingCommaInArrayLiteral:
|
121
|
+
EnforcedStyleForMultiline: consistent_comma
|
122
|
+
|
123
|
+
Style/TrailingCommaInHashLiteral:
|
124
|
+
EnforcedStyleForMultiline: consistent_comma
|
125
|
+
|
126
|
+
Style/ZeroLengthPredicate:
|
127
|
+
Enabled: false
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
### 0.1.6
|
2
|
+
|
3
|
+
Misc
|
4
|
+
|
5
|
+
- fix the generation of zsh completion scripts to prevent [ShellCheck](https://www.shellcheck.net/) warnings (@joehorsnell)†verz
|
6
|
+
|
7
|
+
### 0.1.5
|
8
|
+
|
9
|
+
Bugfixes
|
10
|
+
|
11
|
+
- remove unnecessary `local state` in generated script. (reported by @aoyama-val)
|
12
|
+
|
13
|
+
### 0.1.4
|
14
|
+
|
15
|
+
Bugfixes
|
16
|
+
|
17
|
+
- support `Thor.map`. (by @Zhomart)
|
18
|
+
|
19
|
+
### 0.1.3
|
20
|
+
|
21
|
+
Bugfixes
|
22
|
+
|
23
|
+
- fix invalid script generation bug for option description. (by @tbpgr)
|
24
|
+
- fix invalid script generation bug for not aliased option.
|
25
|
+
|
26
|
+
### 0.1.1
|
27
|
+
|
28
|
+
Features
|
29
|
+
|
30
|
+
- support ruby 1.9.3.
|
31
|
+
|
32
|
+
### 0.1.0
|
33
|
+
|
34
|
+
- initial release.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -69,6 +69,11 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
69
69
|
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 tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
70
70
|
|
71
71
|
|
72
|
+
### Testing completion script
|
73
|
+
|
74
|
+
source spec/thor/zsh_completion/generator_spec.zsh
|
75
|
+
generator_spec [TAB]
|
76
|
+
|
72
77
|
## Contributing
|
73
78
|
|
74
79
|
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/thor-zsh_completion. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
|
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/bin/rubocop
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rubocop' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rubocop", "rubocop")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Thor
|
2
2
|
module ZshCompletion
|
3
3
|
class Generator
|
4
|
-
SUBCOMMAND_FUNCTION_TEMPLATE = ERB.new(File.read("#{
|
4
|
+
SUBCOMMAND_FUNCTION_TEMPLATE = ERB.new(File.read("#{File.dirname(__FILE__)}/template/subcommand_function.erb"), nil, "-")
|
5
5
|
attr_reader :thor, :name
|
6
6
|
|
7
7
|
def initialize(thor, name)
|
@@ -47,15 +47,17 @@ class Thor
|
|
47
47
|
name: "__#{name}",
|
48
48
|
description: nil,
|
49
49
|
options: [],
|
50
|
-
subcommands: subcommand_metadata(thor)
|
50
|
+
subcommands: subcommand_metadata(thor),
|
51
51
|
}
|
52
52
|
|
53
|
-
erb = File.read("#{
|
53
|
+
erb = File.read("#{File.dirname(__FILE__)}/template/main.erb")
|
54
54
|
ERB.new(erb, nil, "-").result(binding)
|
55
55
|
end
|
56
56
|
|
57
57
|
private
|
58
|
-
def render_subcommand_function(subcommand,
|
58
|
+
def render_subcommand_function(subcommand, options = {})
|
59
|
+
prefix = options[:prefix] || []
|
60
|
+
|
59
61
|
source = []
|
60
62
|
|
61
63
|
prefix = (prefix + [subcommand[:name]])
|
@@ -63,33 +65,63 @@ class Thor
|
|
63
65
|
depth = prefix.size + 1
|
64
66
|
|
65
67
|
source << SUBCOMMAND_FUNCTION_TEMPLATE.result(binding)
|
66
|
-
|
67
|
-
|
68
|
+
|
69
|
+
subcommand[:subcommands].each do |nested|
|
70
|
+
source << render_subcommand_function(nested, prefix: prefix)
|
68
71
|
end
|
69
72
|
source.join("\n").strip + "\n"
|
70
73
|
end
|
71
74
|
|
72
75
|
def subcommand_metadata(thor)
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
76
|
+
result = []
|
77
|
+
thor.tasks.each do |(name, command)|
|
78
|
+
aliases = thor.map.select {|_, original_name|
|
79
|
+
name == original_name
|
80
|
+
}.map(&:first)
|
81
|
+
result << generate_command_information(thor, name, command, aliases)
|
82
|
+
end
|
83
|
+
result
|
84
|
+
end
|
85
|
+
|
86
|
+
def generate_command_information(thor, name, command, aliases)
|
87
|
+
subcommands = if (subcommand_class = thor.subcommand_classes[name])
|
88
|
+
subcommand_metadata(subcommand_class)
|
89
|
+
else
|
90
|
+
[]
|
86
91
|
end
|
92
|
+
{name: hyphenate(name),
|
93
|
+
aliases: aliases.map {|a| hyphenate(a) },
|
94
|
+
usage: command.usage,
|
95
|
+
description: command.description,
|
96
|
+
options: thor.class_options.map {|_, o| option_metadata(o) } +
|
97
|
+
command.options.map {|(_, o)| option_metadata(o) },
|
98
|
+
subcommands: subcommands,}
|
87
99
|
end
|
88
100
|
|
89
101
|
def option_metadata(option)
|
90
|
-
{
|
91
|
-
|
92
|
-
|
102
|
+
{names: ["--#{option.name}"] + option.aliases.map {|a| "-#{a}" },
|
103
|
+
description: option.description,}
|
104
|
+
end
|
105
|
+
|
106
|
+
def quote(s)
|
107
|
+
escaped = s.gsub(/'/, "''")
|
108
|
+
%('#{escaped}')
|
109
|
+
end
|
110
|
+
|
111
|
+
def bracket(s)
|
112
|
+
%([#{s}])
|
113
|
+
end
|
114
|
+
|
115
|
+
def escape_option_names(names)
|
116
|
+
if names.size == 1
|
117
|
+
names.first
|
118
|
+
else
|
119
|
+
"{" + names.join(",") + "}"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def hyphenate(s)
|
124
|
+
s.gsub("_", "-")
|
93
125
|
end
|
94
126
|
end
|
95
127
|
end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
$DEPTH)
|
7
7
|
_arguments \
|
8
8
|
<%- subcommand[:options].each do |option| -%>
|
9
|
-
|
9
|
+
<%= escape_option_names(option[:names]) %><%= quote(bracket(option[:description])) if option[:description] %> \
|
10
10
|
<%- end -%>
|
11
11
|
'*: :->subcommands'
|
12
12
|
|
@@ -15,18 +15,26 @@
|
|
15
15
|
_values \
|
16
16
|
'subcommand' \
|
17
17
|
<%- subcommand[:subcommands].each do |subcommand| -%>
|
18
|
-
|
18
|
+
<%= quote(subcommand[:name] + bracket(subcommand[:description])) %> \
|
19
|
+
<%- subcommand[:aliases].each do |_alias| -%>
|
20
|
+
<%= quote(_alias + bracket(subcommand[:description])) %> \
|
21
|
+
<%- end -%>
|
19
22
|
<%- end -%>
|
20
23
|
;
|
21
24
|
;;
|
22
25
|
esac
|
23
26
|
;;
|
24
27
|
*)
|
25
|
-
case $words[$DEPTH] in
|
28
|
+
case ${words[$DEPTH]} in
|
26
29
|
<%- subcommand[:subcommands].each do |subcommand| -%>
|
27
30
|
<%= subcommand[:name] %>)
|
28
31
|
<%= function_name %>_<%= subcommand[:name] %>
|
29
32
|
;;
|
33
|
+
<%- subcommand[:aliases].each do |_alias| -%>
|
34
|
+
<%= _alias %>)
|
35
|
+
<%= function_name %>_<%= subcommand[:name] %>
|
36
|
+
;;
|
37
|
+
<%- end -%>
|
30
38
|
<%- end -%>
|
31
39
|
*)
|
32
40
|
# if does not match any subcommand
|
@@ -41,7 +49,7 @@
|
|
41
49
|
<%= function_name %>() {
|
42
50
|
_arguments \
|
43
51
|
<%- subcommand[:options].each do |option| -%>
|
44
|
-
|
52
|
+
<%= escape_option_names(option[:names]) %><%= quote(bracket(option[:description])) if option[:description] %> \
|
45
53
|
<%- end -%>
|
46
54
|
'*: :->rest'
|
47
55
|
|
data/thor-zsh_completion.gemspec
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
3
|
+
require "thor/zsh_completion/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
6
|
spec.name = "thor-zsh_completion"
|
@@ -9,17 +8,15 @@ Gem::Specification.new do |spec|
|
|
9
8
|
spec.authors = ["labocho"]
|
10
9
|
spec.email = ["labocho@penguinlab.jp"]
|
11
10
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
11
|
+
spec.summary = "Create zsh completion script for Thor subclass"
|
12
|
+
spec.description = "Create zsh completion script for Thor subclass"
|
14
13
|
spec.homepage = "https://github.com/labocho/thor-zsh_completion"
|
15
14
|
spec.license = "MIT"
|
16
15
|
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject {
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
|
18
17
|
spec.bindir = "exe"
|
19
|
-
spec.executables = spec.files.grep(%r
|
18
|
+
spec.executables = spec.files.grep(%r(^exe/)) {|f| File.basename(f) }
|
20
19
|
spec.require_paths = ["lib"]
|
21
20
|
|
22
|
-
spec.
|
23
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
-
spec.add_development_dependency "rspec"
|
21
|
+
spec.add_dependency "thor", "~> 0"
|
25
22
|
end
|
metadata
CHANGED
@@ -1,55 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thor-zsh_completion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- labocho
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.10'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.10'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '10.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '10.0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
18
|
- !ruby/object:Gem::Version
|
47
19
|
version: '0'
|
48
|
-
type: :
|
20
|
+
type: :runtime
|
49
21
|
prerelease: false
|
50
22
|
version_requirements: !ruby/object:Gem::Requirement
|
51
23
|
requirements:
|
52
|
-
- - "
|
24
|
+
- - "~>"
|
53
25
|
- !ruby/object:Gem::Version
|
54
26
|
version: '0'
|
55
27
|
description: Create zsh completion script for Thor subclass
|
@@ -61,13 +33,17 @@ extra_rdoc_files: []
|
|
61
33
|
files:
|
62
34
|
- ".gitignore"
|
63
35
|
- ".rspec"
|
36
|
+
- ".rubocop.yml"
|
64
37
|
- ".travis.yml"
|
38
|
+
- CHANGELOG.md
|
65
39
|
- CODE_OF_CONDUCT.md
|
66
40
|
- Gemfile
|
67
41
|
- LICENSE.txt
|
68
42
|
- README.md
|
69
43
|
- Rakefile
|
70
44
|
- bin/console
|
45
|
+
- bin/rspec
|
46
|
+
- bin/rubocop
|
71
47
|
- bin/setup
|
72
48
|
- lib/thor/zsh_completion.rb
|
73
49
|
- lib/thor/zsh_completion/command.rb
|
@@ -95,8 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
71
|
- !ruby/object:Gem::Version
|
96
72
|
version: '0'
|
97
73
|
requirements: []
|
98
|
-
|
99
|
-
rubygems_version: 2.4.5.1
|
74
|
+
rubygems_version: 3.1.2
|
100
75
|
signing_key:
|
101
76
|
specification_version: 4
|
102
77
|
summary: Create zsh completion script for Thor subclass
|