commander 4.4.7 → 4.5.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 +4 -4
- data/.travis.yml +7 -8
- data/History.rdoc +15 -0
- data/README.md +6 -6
- data/commander.gemspec +7 -0
- data/lib/commander/command.rb +3 -1
- data/lib/commander/help_formatters/terminal.rb +5 -1
- data/lib/commander/help_formatters/terminal_compact.rb +5 -1
- data/lib/commander/runner.rb +22 -16
- data/lib/commander/version.rb +1 -1
- data/spec/command_spec.rb +27 -0
- data/spec/runner_spec.rb +105 -8
- data/spec/spec_helper.rb +10 -1
- metadata +9 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c911ee8aef66db7dbe8045f9f996ff0b810afeacb6f8efc7fc288e322937f59a
|
4
|
+
data.tar.gz: b22b126f597fad5adcc4ecc44c60ac57ac70b3ce2ffeb646d8001eabf088da8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '04589993f113b0ed3aab4d90ae8a963f5d68999535f523def84e9d6d2a355c0a5b2bbdc4a5969c0bcf8d44e6d1a40f42e1e6f5bbafe35126b321ef46c05f235f'
|
7
|
+
data.tar.gz: 52c16dd44e1801cb3ee353332dada749c013b452d3976c1a9aed9829d16b545f20b625cadcb37fba4fb09468c2c17a04d1dce14f665b2cdd4ac14e664d2a79fd
|
data/.travis.yml
CHANGED
data/History.rdoc
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
=== 4.5.2 / 2020-03-12
|
2
|
+
|
3
|
+
* Fix bug handling global options provided in option=value form (#47). (@orien)
|
4
|
+
* Fix ERB warnings under Ruby 2.7. (@esotericpig)
|
5
|
+
* Fix bug handling global options placed before command name (#32). (@orien)
|
6
|
+
|
7
|
+
=== 4.5.1 / 2020-03-08
|
8
|
+
|
9
|
+
* Fix bug causing global options to be ignored when arguments are present (#86). (@orien)
|
10
|
+
|
11
|
+
=== 4.5.0 / 2020-01-21
|
12
|
+
|
13
|
+
* Drop support for Ruby < 2.3.
|
14
|
+
* Fix bug parsing double dash (#75).
|
15
|
+
|
1
16
|
=== 4.4.7 / 2018-10-22
|
2
17
|
|
3
18
|
* Update HighLine dependency to 2.0.0. (@rohitpaulk)
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
[<img src="https://api.travis-ci.org/commander-rb/commander.svg" alt="Build Status" />](
|
2
|
-
[
|
2
|
+
[](https://inch-ci.org/github/commander-rb/commander)
|
3
3
|
|
4
4
|
# Commander
|
5
5
|
|
@@ -243,8 +243,8 @@ end
|
|
243
243
|
## Growl Notifications
|
244
244
|
|
245
245
|
Commander provides methods for displaying Growl notifications. To use these
|
246
|
-
methods you need to install
|
247
|
-
the [growlnotify](
|
246
|
+
methods you need to install https://github.com/tj/growl which utilizes
|
247
|
+
the [growlnotify](https://growl.info/extras.php#growlnotify) executable. Note that
|
248
248
|
growl is auto-imported by Commander when available, no need to require.
|
249
249
|
|
250
250
|
```ruby
|
@@ -449,7 +449,7 @@ global_option '--config FILE'
|
|
449
449
|
|
450
450
|
## ASCII Tables
|
451
451
|
|
452
|
-
For feature rich ASCII tables for your terminal app check out the terminal-table gem at
|
452
|
+
For feature rich ASCII tables for your terminal app check out the terminal-table gem at https://github.com/tj/terminal-table
|
453
453
|
|
454
454
|
+----------+-------+----+--------+-----------------------+
|
455
455
|
| Terminal | Table | Is | Wicked | Awesome |
|
@@ -468,7 +468,7 @@ OR
|
|
468
468
|
## Contrib
|
469
469
|
|
470
470
|
Feel free to fork and request a pull, or submit a ticket
|
471
|
-
|
471
|
+
https://github.com/commander-rb/commander/issues
|
472
472
|
|
473
473
|
## License
|
474
474
|
|
data/commander.gemspec
CHANGED
@@ -12,6 +12,13 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.homepage = 'https://github.com/commander-rb/commander'
|
13
13
|
s.summary = 'The complete solution for Ruby command-line executables'
|
14
14
|
s.description = 'The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.'
|
15
|
+
s.metadata = {
|
16
|
+
'bug_tracker_uri' => "#{s.homepage}/issues",
|
17
|
+
'changelog_uri' => "#{s.homepage}/blob/master/History.rdoc",
|
18
|
+
'documentation_uri' => "https://www.rubydoc.info/gems/commander/#{s.version}",
|
19
|
+
'homepage_uri' => s.homepage,
|
20
|
+
'source_code_uri' => "#{s.homepage}/tree/v#{s.version}",
|
21
|
+
}
|
15
22
|
|
16
23
|
s.files = `git ls-files`.split("\n")
|
17
24
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/lib/commander/command.rb
CHANGED
@@ -4,6 +4,7 @@ module Commander
|
|
4
4
|
class Command
|
5
5
|
attr_accessor :name, :examples, :syntax, :description
|
6
6
|
attr_accessor :summary, :proxy_options, :options
|
7
|
+
attr_reader :global_options
|
7
8
|
|
8
9
|
##
|
9
10
|
# Options struct.
|
@@ -38,6 +39,7 @@ module Commander
|
|
38
39
|
def initialize(name)
|
39
40
|
@name, @examples, @when_called = name.to_s, [], []
|
40
41
|
@options, @proxy_options = [], []
|
42
|
+
@global_options = []
|
41
43
|
end
|
42
44
|
|
43
45
|
##
|
@@ -190,7 +192,7 @@ module Commander
|
|
190
192
|
# collected by the #option_proc.
|
191
193
|
|
192
194
|
def proxy_option_struct
|
193
|
-
proxy_options.each_with_object(Options.new) do |(option, value), options|
|
195
|
+
(global_options + proxy_options).each_with_object(Options.new) do |(option, value), options|
|
194
196
|
# options that are present will evaluate to true
|
195
197
|
value = true if value.nil?
|
196
198
|
options.__send__ :"#{option}=", value
|
@@ -12,7 +12,11 @@ module Commander
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def template(name)
|
15
|
-
|
15
|
+
if RUBY_VERSION < '2.6'
|
16
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), 'terminal', "#{name}.erb")), nil, '-')
|
17
|
+
else
|
18
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), 'terminal', "#{name}.erb")), trim_mode: '-')
|
19
|
+
end
|
16
20
|
end
|
17
21
|
end
|
18
22
|
end
|
@@ -4,7 +4,11 @@ module Commander
|
|
4
4
|
module HelpFormatter
|
5
5
|
class TerminalCompact < Terminal
|
6
6
|
def template(name)
|
7
|
-
|
7
|
+
if RUBY_VERSION < '2.6'
|
8
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), 'terminal_compact', "#{name}.erb")), nil, '-')
|
9
|
+
else
|
10
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), 'terminal_compact', "#{name}.erb")), trim_mode: '-')
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
10
14
|
end
|
data/lib/commander/runner.rb
CHANGED
@@ -246,6 +246,7 @@ module Commander
|
|
246
246
|
# Returns array of valid command names found within _args_.
|
247
247
|
|
248
248
|
def valid_command_names_from(*args)
|
249
|
+
remove_global_options options, args
|
249
250
|
arg_string = args.delete_if { |value| value =~ /^-/ }.join ' '
|
250
251
|
commands.keys.find_all { |name| name if arg_string =~ /^#{name}\b/ }
|
251
252
|
end
|
@@ -328,26 +329,31 @@ module Commander
|
|
328
329
|
# again for the command.
|
329
330
|
|
330
331
|
def remove_global_options(options, args)
|
331
|
-
# TODO: refactor with flipflop, please TJ ! have time to refactor me !
|
332
332
|
options.each do |option|
|
333
|
-
switches = option[:switches]
|
333
|
+
switches = option[:switches]
|
334
334
|
next if switches.empty?
|
335
|
-
|
336
|
-
if (switch_has_arg = switches.any? { |s| s =~ /[ =]/ })
|
337
|
-
switches.map! { |s| s[0, s.index('=') || s.index(' ') || s.length] }
|
338
|
-
end
|
339
|
-
|
335
|
+
option_takes_argument = switches.any? { |s| s =~ /[ =]/ }
|
340
336
|
switches = expand_optionally_negative_switches(switches)
|
341
337
|
|
342
|
-
|
343
|
-
args.delete_if do |
|
344
|
-
if
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
338
|
+
option_argument_needs_removal = false
|
339
|
+
args.delete_if do |token|
|
340
|
+
break if token == '--'
|
341
|
+
|
342
|
+
# Use just the portion of the token before the = when
|
343
|
+
# comparing switches.
|
344
|
+
index_of_equals = token.index('=') if option_takes_argument
|
345
|
+
token = token[0, index_of_equals] if index_of_equals
|
346
|
+
token_contains_option_argument = !index_of_equals.nil?
|
347
|
+
|
348
|
+
if switches.any? { |s| s[0, token.length] == token }
|
349
|
+
option_argument_needs_removal =
|
350
|
+
option_takes_argument && !token_contains_option_argument
|
351
|
+
true
|
352
|
+
elsif option_argument_needs_removal && token !~ /^-/
|
353
|
+
option_argument_needs_removal = false
|
354
|
+
true
|
349
355
|
else
|
350
|
-
|
356
|
+
option_argument_needs_removal = false
|
351
357
|
false
|
352
358
|
end
|
353
359
|
end
|
@@ -395,7 +401,7 @@ module Commander
|
|
395
401
|
def global_option_proc(switches, &block)
|
396
402
|
lambda do |value|
|
397
403
|
unless active_command.nil?
|
398
|
-
active_command.
|
404
|
+
active_command.global_options << [Runner.switch_to_sym(switches.last), value]
|
399
405
|
end
|
400
406
|
yield value if block && !value.nil?
|
401
407
|
end
|
data/lib/commander/version.rb
CHANGED
data/spec/command_spec.rb
CHANGED
@@ -164,6 +164,33 @@ describe Commander::Command do
|
|
164
164
|
end
|
165
165
|
@command.run '--interval', '15'
|
166
166
|
end
|
167
|
+
|
168
|
+
describe 'given a global option' do
|
169
|
+
before do
|
170
|
+
@command.global_options << [:global_option, 'gvalue']
|
171
|
+
end
|
172
|
+
|
173
|
+
describe 'and no command specific arguments' do
|
174
|
+
it 'provides the global option to the command action' do
|
175
|
+
@command.when_called { |_, options| expect(options.global_option).to eq('gvalue') }
|
176
|
+
@command.run
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
describe 'and a command specific option' do
|
181
|
+
it 'provides the global option to the command action' do
|
182
|
+
@command.when_called { |_, options| expect(options.global_option).to eq('gvalue') }
|
183
|
+
@command.run '--verbose'
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
describe 'and a command specific argument' do
|
188
|
+
it 'provides the global option to the command action' do
|
189
|
+
@command.when_called { |_, options| expect(options.global_option).to eq('gvalue') }
|
190
|
+
@command.run 'argument'
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
167
194
|
end
|
168
195
|
end
|
169
196
|
end
|
data/spec/runner_spec.rb
CHANGED
@@ -100,6 +100,17 @@ describe Commander do
|
|
100
100
|
expect(quiet).to be true
|
101
101
|
end
|
102
102
|
|
103
|
+
it 'should be inherited by commands when provided before the command name' do
|
104
|
+
option = nil
|
105
|
+
new_command_runner '--global-option', 'option-value', 'command_name' do
|
106
|
+
global_option('--global-option=GLOBAL', 'A global option')
|
107
|
+
command :command_name do |c|
|
108
|
+
c.when_called { |_, options| option = options.global_option }
|
109
|
+
end
|
110
|
+
end.run!
|
111
|
+
expect(option).to eq('option-value')
|
112
|
+
end
|
113
|
+
|
103
114
|
it 'should be inherited by commands even when a block is present' do
|
104
115
|
quiet = nil
|
105
116
|
new_command_runner 'foo', '--quiet' do
|
@@ -132,6 +143,57 @@ describe Commander do
|
|
132
143
|
end.run!
|
133
144
|
expect(quiet).to be false
|
134
145
|
end
|
146
|
+
|
147
|
+
it 'should allow command arguments before the global option' do
|
148
|
+
config = nil
|
149
|
+
args = nil
|
150
|
+
new_command_runner 'foo', '--config', 'config-value', 'arg1', 'arg2' do
|
151
|
+
global_option('-c', '--config CONFIG', String)
|
152
|
+
command :foo do |c|
|
153
|
+
c.when_called do |arguments, options|
|
154
|
+
options.default(config: 'default')
|
155
|
+
args = arguments
|
156
|
+
config = options.config
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end.run!
|
160
|
+
expect(config).to eq('config-value')
|
161
|
+
expect(args).to eq(%w(arg1 arg2))
|
162
|
+
end
|
163
|
+
|
164
|
+
it 'should allow command arguments after the global option' do
|
165
|
+
config = nil
|
166
|
+
args = nil
|
167
|
+
new_command_runner 'foo', 'arg1', 'arg2', '--config', 'config-value' do
|
168
|
+
global_option('-c', '--config CONFIG', String)
|
169
|
+
command :foo do |c|
|
170
|
+
c.when_called do |arguments, options|
|
171
|
+
options.default(config: 'default')
|
172
|
+
args = arguments
|
173
|
+
config = options.config
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end.run!
|
177
|
+
expect(config).to eq('config-value')
|
178
|
+
expect(args).to eq(%w(arg1 arg2))
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'allows global options in the form option=value' do
|
182
|
+
config = nil
|
183
|
+
args = nil
|
184
|
+
new_command_runner 'test', 'arg1', '--config=config-value', 'arg2' do
|
185
|
+
global_option('-c', '--config CONFIG', String)
|
186
|
+
command :test do |c|
|
187
|
+
c.when_called do |arguments, options|
|
188
|
+
options.default(config: 'default')
|
189
|
+
args = arguments
|
190
|
+
config = options.config
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end.run!
|
194
|
+
expect(config).to eq('config-value')
|
195
|
+
expect(args).to eq(%w[arg1 arg2])
|
196
|
+
end
|
135
197
|
end
|
136
198
|
|
137
199
|
describe '#parse_global_options' do
|
@@ -326,6 +388,20 @@ describe Commander do
|
|
326
388
|
command_runner.remove_global_options options, args
|
327
389
|
expect(args).to eq(%w(--versionCode something))
|
328
390
|
end
|
391
|
+
|
392
|
+
it 'should remove specified switches value provided via equals' do
|
393
|
+
options = [{ switches: ['--global GLOBAL'] }]
|
394
|
+
args = ['--command', '--global=option-value', 'arg']
|
395
|
+
command_runner.remove_global_options options, args
|
396
|
+
expect(args).to eq(['--command', 'arg'])
|
397
|
+
end
|
398
|
+
|
399
|
+
it 'should not remove extra values after switches' do
|
400
|
+
options = [{ switches: ['--global GLOBAL'] }]
|
401
|
+
args = ['--global', '--command', 'arg']
|
402
|
+
command_runner.remove_global_options options, args
|
403
|
+
expect(args).to eq(['--command', 'arg'])
|
404
|
+
end
|
329
405
|
end
|
330
406
|
|
331
407
|
describe '--trace' do
|
@@ -334,7 +410,7 @@ describe Commander do
|
|
334
410
|
new_command_runner 'foo' do
|
335
411
|
command(:foo) { |c| c.when_called { fail 'cookies!' } }
|
336
412
|
end.run!
|
337
|
-
end.to raise_error(
|
413
|
+
end.to raise_error(TestSystemExit, /error: cookies!. Use --trace/)
|
338
414
|
end
|
339
415
|
|
340
416
|
it 'should display callstack when using this switch' do
|
@@ -363,7 +439,7 @@ describe Commander do
|
|
363
439
|
new_command_runner 'help', '--trace' do
|
364
440
|
never_trace!
|
365
441
|
end.run!
|
366
|
-
end.to raise_error(
|
442
|
+
end.to raise_error(TestSystemExit, /invalid option: --trace/)
|
367
443
|
end
|
368
444
|
|
369
445
|
it 'should not prompt to use --trace switch on errors' do
|
@@ -373,7 +449,7 @@ describe Commander do
|
|
373
449
|
never_trace!
|
374
450
|
command(:foo) { |c| c.when_called { fail 'cookies!' } }
|
375
451
|
end.run!
|
376
|
-
rescue
|
452
|
+
rescue TestSystemExit => e
|
377
453
|
msg = e.message
|
378
454
|
end
|
379
455
|
expect(msg).to match(/error: cookies!/)
|
@@ -430,7 +506,7 @@ describe Commander do
|
|
430
506
|
it 'should output an invalid option message' do
|
431
507
|
expect do
|
432
508
|
run('test', '--invalid-option')
|
433
|
-
end.to raise_error(
|
509
|
+
end.to raise_error(TestSystemExit, /invalid option: --invalid-option/)
|
434
510
|
end
|
435
511
|
end
|
436
512
|
|
@@ -438,7 +514,7 @@ describe Commander do
|
|
438
514
|
it 'should output an invalid command message' do
|
439
515
|
expect do
|
440
516
|
run('foo')
|
441
|
-
end.to raise_error(
|
517
|
+
end.to raise_error(TestSystemExit, /invalid command. Use --help for more information/)
|
442
518
|
end
|
443
519
|
end
|
444
520
|
|
@@ -446,7 +522,7 @@ describe Commander do
|
|
446
522
|
it 'should output an invalid command message' do
|
447
523
|
expect do
|
448
524
|
run('help', 'does_not_exist')
|
449
|
-
end.to raise_error(
|
525
|
+
end.to raise_error(TestSystemExit, /invalid command. Use --help for more information/)
|
450
526
|
end
|
451
527
|
end
|
452
528
|
|
@@ -454,7 +530,7 @@ describe Commander do
|
|
454
530
|
it 'should output an invalid command message' do
|
455
531
|
expect do
|
456
532
|
run('--help', 'does_not_exist')
|
457
|
-
end.to raise_error(
|
533
|
+
end.to raise_error(TestSystemExit, /invalid command. Use --help for more information/)
|
458
534
|
end
|
459
535
|
end
|
460
536
|
|
@@ -462,7 +538,7 @@ describe Commander do
|
|
462
538
|
it 'should output an invalid option message' do
|
463
539
|
expect do
|
464
540
|
run('--help', 'test', '--invalid-option')
|
465
|
-
end.to raise_error(
|
541
|
+
end.to raise_error(TestSystemExit, /invalid option: --invalid-option/)
|
466
542
|
end
|
467
543
|
end
|
468
544
|
|
@@ -495,6 +571,13 @@ describe Commander do
|
|
495
571
|
expect(command_runner.command_name_from_args).to eq('test')
|
496
572
|
end
|
497
573
|
|
574
|
+
it 'should locate command when provided after a global argument with value' do
|
575
|
+
new_command_runner '--global-option', 'option-value', 'test' do
|
576
|
+
global_option('--global-option=GLOBAL', 'A global option')
|
577
|
+
end
|
578
|
+
expect(command_runner.command_name_from_args).to eq('test')
|
579
|
+
end
|
580
|
+
|
498
581
|
it 'should support multi-word commands' do
|
499
582
|
new_command_runner '--help', '--arbitrary', 'some', 'long', 'command', 'foo'
|
500
583
|
command('some long command') {}
|
@@ -643,4 +726,18 @@ describe Commander do
|
|
643
726
|
end.run!
|
644
727
|
end
|
645
728
|
end
|
729
|
+
|
730
|
+
describe 'with double dash' do
|
731
|
+
it 'should interpret the remainder as arguments' do
|
732
|
+
new_command_runner 'foo', '--', '-x' do
|
733
|
+
command('foo') do |c|
|
734
|
+
c.option '-x', 'Switch'
|
735
|
+
c.when_called do |args, options|
|
736
|
+
expect(args).to eq(%w(-x))
|
737
|
+
expect(options.x).to be_nil
|
738
|
+
end
|
739
|
+
end
|
740
|
+
end.run!
|
741
|
+
end
|
742
|
+
end
|
646
743
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -14,13 +14,22 @@ require 'commander'
|
|
14
14
|
require 'commander/methods'
|
15
15
|
|
16
16
|
# Mock terminal IO streams so we can spec against them
|
17
|
-
|
18
17
|
def mock_terminal
|
19
18
|
@input = StringIO.new
|
20
19
|
@output = StringIO.new
|
21
20
|
HighLine.default_instance = HighLine.new(@input, @output)
|
22
21
|
end
|
23
22
|
|
23
|
+
# Stub Kernel.abort
|
24
|
+
TestSystemExit = Class.new(RuntimeError)
|
25
|
+
module Commander
|
26
|
+
class Runner
|
27
|
+
def abort(message)
|
28
|
+
fail TestSystemExit, message
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
24
33
|
# Create test command for usage within several specs
|
25
34
|
|
26
35
|
def create_test_command
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-03-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: highline
|
@@ -140,7 +140,12 @@ files:
|
|
140
140
|
homepage: https://github.com/commander-rb/commander
|
141
141
|
licenses:
|
142
142
|
- MIT
|
143
|
-
metadata:
|
143
|
+
metadata:
|
144
|
+
bug_tracker_uri: https://github.com/commander-rb/commander/issues
|
145
|
+
changelog_uri: https://github.com/commander-rb/commander/blob/master/History.rdoc
|
146
|
+
documentation_uri: https://www.rubydoc.info/gems/commander/4.5.2
|
147
|
+
homepage_uri: https://github.com/commander-rb/commander
|
148
|
+
source_code_uri: https://github.com/commander-rb/commander/tree/v4.5.2
|
144
149
|
post_install_message:
|
145
150
|
rdoc_options: []
|
146
151
|
require_paths:
|
@@ -156,8 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
161
|
- !ruby/object:Gem::Version
|
157
162
|
version: '0'
|
158
163
|
requirements: []
|
159
|
-
|
160
|
-
rubygems_version: 2.7.4
|
164
|
+
rubygems_version: 3.0.6
|
161
165
|
signing_key:
|
162
166
|
specification_version: 4
|
163
167
|
summary: The complete solution for Ruby command-line executables
|