gli 2.5.6 → 2.6.0.rc1
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.
- data/.travis.yml +1 -0
- data/Gemfile +1 -1
- data/features/step_definitions/todo_steps.rb +4 -0
- data/features/todo.feature +22 -0
- data/features/todo_legacy.feature +128 -0
- data/lib/gli.rb +3 -1
- data/lib/gli/app.rb +10 -2
- data/lib/gli/app_support.rb +39 -31
- data/lib/gli/command.rb +3 -2
- data/lib/gli/command_finder.rb +41 -0
- data/lib/gli/command_line_token.rb +0 -4
- data/lib/gli/command_support.rb +37 -64
- data/lib/gli/commands/doc.rb +12 -2
- data/lib/gli/commands/help.rb +3 -0
- data/lib/gli/commands/help_modules/command_help_format.rb +22 -5
- data/lib/gli/commands/scaffold.rb +1 -1
- data/lib/gli/exceptions.rb +17 -5
- data/lib/gli/gli_option_block_parser.rb +84 -0
- data/lib/gli/gli_option_parser.rb +116 -96
- data/lib/gli/option_parser_factory.rb +42 -10
- data/lib/gli/option_parsing_result.rb +19 -0
- data/lib/gli/version.rb +1 -1
- data/test/apps/todo/bin/todo +2 -0
- data/test/apps/todo/lib/todo/commands/make.rb +52 -0
- data/test/apps/todo_legacy/Gemfile +2 -0
- data/test/apps/todo_legacy/README.rdoc +6 -0
- data/test/apps/todo_legacy/Rakefile +23 -0
- data/test/apps/todo_legacy/bin/todo +61 -0
- data/test/apps/todo_legacy/lib/todo/commands/create.rb +24 -0
- data/test/apps/todo_legacy/lib/todo/commands/list.rb +63 -0
- data/test/apps/todo_legacy/lib/todo/commands/ls.rb +47 -0
- data/test/apps/todo_legacy/lib/todo/version.rb +3 -0
- data/test/apps/todo_legacy/test/tc_nothing.rb +14 -0
- data/test/apps/todo_legacy/todo.gemspec +23 -0
- data/test/apps/todo_legacy/todo.rdoc +5 -0
- data/test/tc_command.rb +84 -59
- data/test/{tc_compount_command.rb → tc_compound_command.rb} +0 -0
- data/test/tc_flag.rb +0 -1
- data/test/tc_gli.rb +2 -2
- data/test/tc_help.rb +11 -3
- data/test/tc_subcommand_parsing.rb +104 -0
- data/test/tc_subcommands.rb +1 -0
- data/test/tc_switch.rb +0 -1
- data/test/test_helper.rb +5 -0
- metadata +74 -13
- data/lib/gli/copy_options_to_aliases.rb +0 -33
data/test/tc_command.rb
CHANGED
@@ -10,54 +10,8 @@ class TC_testCommand < Clean::Test::TestCase
|
|
10
10
|
$stdout = @fake_stdout
|
11
11
|
@original_stderr = $stderr
|
12
12
|
$stderr = @fake_stderr
|
13
|
-
@app = CLIApp.new
|
14
|
-
@app.error_device=@fake_stderr
|
15
13
|
ENV.delete('GLI_DEBUG')
|
16
|
-
|
17
|
-
@app.program_desc 'A super awesome program'
|
18
|
-
@app.desc 'Some Global Option'
|
19
|
-
@app.switch :g
|
20
|
-
@app.switch :blah
|
21
|
-
@app.long_desc 'This is a very long description for a flag'
|
22
|
-
@app.flag [:y,:yes]
|
23
|
-
@pre_called = false
|
24
|
-
@post_called = false
|
25
|
-
@error_called = false
|
26
|
-
@app.pre { |g,c,o,a| @pre_called = true }
|
27
|
-
@app.post { |g,c,o,a| @post_called = true }
|
28
|
-
@app.on_error { |g,c,o,a| @error_called = true }
|
29
|
-
@glob = nil
|
30
|
-
@verbose = nil
|
31
|
-
@glob_verbose = nil
|
32
|
-
@configure = nil
|
33
|
-
@args = nil
|
34
|
-
@app.desc 'Some Basic Command that potentially has a really really really really really really really long description and stuff, but you know, who cares?'
|
35
|
-
@app.long_desc 'This is the long description: "Some Basic Command that potentially has a really really really really really really really long description and stuff, but you know, who cares?"'
|
36
|
-
@app.arg_name 'first_file second_file'
|
37
|
-
@app.command [:basic,:bs] do |c|
|
38
|
-
c.desc 'be verbose'
|
39
|
-
c.switch :v
|
40
|
-
c.desc 'configure something or other, in some way that requires a lot of verbose text and whatnot'
|
41
|
-
c.default_value 'crud'
|
42
|
-
c.flag [:c,:configure]
|
43
|
-
c.action do |global_options,options,arguments|
|
44
|
-
@glob = global_options[:g] ? 'true' : 'false'
|
45
|
-
@verbose = options[:v] ? 'true' : 'false'
|
46
|
-
@glob_verbose = global_options[:v] ? 'true' : 'false'
|
47
|
-
@configure = options[:c]
|
48
|
-
@args = arguments
|
49
|
-
end
|
50
|
-
end
|
51
|
-
@app.desc "Testing long help wrapping"
|
52
|
-
@app.long_desc <<-EOS
|
53
|
-
This will create a scaffold command line project that uses @app
|
54
|
-
for command line processing. Specifically, this will create
|
55
|
-
an executable ready to go, as well as a lib and test directory, all
|
56
|
-
inside the directory named for your project
|
57
|
-
EOS
|
58
|
-
@app.command [:test_wrap] do |c|
|
59
|
-
c.action {}
|
60
|
-
end
|
14
|
+
create_app
|
61
15
|
end
|
62
16
|
|
63
17
|
def teardown
|
@@ -85,18 +39,25 @@ class TC_testCommand < Clean::Test::TestCase
|
|
85
39
|
end
|
86
40
|
|
87
41
|
def test_basic_command
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
42
|
+
[false,true].each do |openstruct|
|
43
|
+
end
|
44
|
+
[true].each do |openstruct|
|
45
|
+
create_app(openstruct)
|
46
|
+
openstruct_message = openstruct ? ", with use_openstruct" : ""
|
47
|
+
args_args = [%w(-g basic -v -c foo bar baz quux), %w(-g basic -v --configure=foo bar baz quux)]
|
48
|
+
args_args.each do |args|
|
49
|
+
args_orig = args.clone
|
50
|
+
@app.run(args)
|
51
|
+
assert_equal('true',@glob,"For args #{args_orig}#{openstruct_message}")
|
52
|
+
assert_equal('true',@glob_long_form,"For args #{args_orig}#{openstruct_message}")
|
53
|
+
assert_equal('true',@verbose,"For args #{args_orig}#{openstruct_message}")
|
54
|
+
assert_equal('false',@glob_verbose,"For args #{args_orig}#{openstruct_message}")
|
55
|
+
assert_equal('foo',@configure,"For args #{args_orig}#{openstruct_message}")
|
56
|
+
assert_equal(%w(bar baz quux),@args,"For args #{args_orig}#{openstruct_message}")
|
57
|
+
assert(@pre_called,"Pre block should have been called for args #{args_orig}#{openstruct_message}")
|
58
|
+
assert(@post_called,"Post block should have been called for args #{args_orig}#{openstruct_message}")
|
59
|
+
assert(!@error_called,"Error block should not have been called for args #{args_orig}#{openstruct_message}")
|
60
|
+
end
|
100
61
|
end
|
101
62
|
end
|
102
63
|
|
@@ -402,4 +363,68 @@ class TC_testCommand < Clean::Test::TestCase
|
|
402
363
|
"Didn't expected output to contain #{regexp.inspect}, output was:\n#{output}"
|
403
364
|
end
|
404
365
|
|
366
|
+
def create_app(use_openstruct=false)
|
367
|
+
@app = CLIApp.new
|
368
|
+
@app.error_device=@fake_stderr
|
369
|
+
@app.reset
|
370
|
+
|
371
|
+
if use_openstruct
|
372
|
+
@app.use_openstruct true
|
373
|
+
end
|
374
|
+
|
375
|
+
@app.program_desc 'A super awesome program'
|
376
|
+
@app.desc 'Some Global Option'
|
377
|
+
@app.switch [:g,:global]
|
378
|
+
@app.switch :blah
|
379
|
+
@app.long_desc 'This is a very long description for a flag'
|
380
|
+
@app.flag [:y,:yes]
|
381
|
+
@pre_called = false
|
382
|
+
@post_called = false
|
383
|
+
@error_called = false
|
384
|
+
@app.pre { |g,c,o,a| @pre_called = true }
|
385
|
+
@app.post { |g,c,o,a| @post_called = true }
|
386
|
+
@app.on_error { |g,c,o,a| @error_called = true }
|
387
|
+
@glob = nil
|
388
|
+
@verbose = nil
|
389
|
+
@glob_verbose = nil
|
390
|
+
@configure = nil
|
391
|
+
@args = nil
|
392
|
+
@app.desc 'Some Basic Command that potentially has a really really really really really really really long description and stuff, but you know, who cares?'
|
393
|
+
@app.long_desc 'This is the long description: "Some Basic Command that potentially has a really really really really really really really long description and stuff, but you know, who cares?"'
|
394
|
+
@app.arg_name 'first_file second_file'
|
395
|
+
@app.command [:basic,:bs] do |c|
|
396
|
+
c.desc 'be verbose'
|
397
|
+
c.switch :v
|
398
|
+
c.desc 'configure something or other, in some way that requires a lot of verbose text and whatnot'
|
399
|
+
c.default_value 'crud'
|
400
|
+
c.flag [:c,:configure]
|
401
|
+
c.action do |global_options,options,arguments|
|
402
|
+
if use_openstruct
|
403
|
+
@glob = global_options.g ? 'true' : 'false'
|
404
|
+
@glob_long_form = global_options.global ? 'true' : 'false'
|
405
|
+
@verbose = options.v ? 'true' : 'false'
|
406
|
+
@glob_verbose = global_options.v ? 'true' : 'false'
|
407
|
+
@configure = options.c
|
408
|
+
else
|
409
|
+
@glob = global_options[:g] ? 'true' : 'false'
|
410
|
+
@glob_long_form = global_options[:global] ? 'true' : 'false'
|
411
|
+
@verbose = options[:v] ? 'true' : 'false'
|
412
|
+
@glob_verbose = global_options[:v] ? 'true' : 'false'
|
413
|
+
@configure = options[:c]
|
414
|
+
end
|
415
|
+
@args = arguments
|
416
|
+
end
|
417
|
+
end
|
418
|
+
@app.desc "Testing long help wrapping"
|
419
|
+
@app.long_desc <<-EOS
|
420
|
+
This will create a scaffold command line project that uses @app
|
421
|
+
for command line processing. Specifically, this will create
|
422
|
+
an executable ready to go, as well as a lib and test directory, all
|
423
|
+
inside the directory named for your project
|
424
|
+
EOS
|
425
|
+
@app.command [:test_wrap] do |c|
|
426
|
+
c.action {}
|
427
|
+
end
|
428
|
+
end
|
429
|
+
|
405
430
|
end
|
File without changes
|
data/test/tc_flag.rb
CHANGED
@@ -57,7 +57,6 @@ class TC_testFlag < Clean::Test::TestCase
|
|
57
57
|
assert_equal(expected[:safe_default_value],@flag.safe_default_value)
|
58
58
|
assert_equal(expected[:must_match],@flag.must_match)
|
59
59
|
assert_equal(expected[:type],@flag.type)
|
60
|
-
assert(@flag.usage != nil)
|
61
60
|
}
|
62
61
|
end
|
63
62
|
end
|
data/test/tc_gli.rb
CHANGED
@@ -23,6 +23,7 @@ class TC_testGLI < Clean::Test::TestCase
|
|
23
23
|
@original_stderr = $stderr
|
24
24
|
$stderr = @fake_stderr
|
25
25
|
@app = CLIApp.new
|
26
|
+
|
26
27
|
@config_file = File.expand_path(File.dirname(File.realpath(__FILE__)) + '/new_config.yaml')
|
27
28
|
@gli_debug = ENV['GLI_DEBUG']
|
28
29
|
@app.error_device=@fake_stderr
|
@@ -480,6 +481,7 @@ class TC_testGLI < Clean::Test::TestCase
|
|
480
481
|
end
|
481
482
|
|
482
483
|
def test_exits_zero_on_success
|
484
|
+
@app.reset
|
483
485
|
assert_equal 0,@app.run([]),@fake_stderr.to_s
|
484
486
|
end
|
485
487
|
|
@@ -649,8 +651,6 @@ class TC_testGLI < Clean::Test::TestCase
|
|
649
651
|
assert (object.flags[:f] )
|
650
652
|
assert_equal(description,object.flags[:f].description)
|
651
653
|
assert_equal(long_desc,object.flags[:f].long_description)
|
652
|
-
assert(nil != object.flags[:f].usage)
|
653
|
-
assert(object.usage != nil) if object.respond_to? :usage
|
654
654
|
end
|
655
655
|
|
656
656
|
def do_test_switch_create(object)
|
data/test/tc_help.rb
CHANGED
@@ -26,7 +26,9 @@ class TC_testHelp < Clean::Test::TestCase
|
|
26
26
|
|
27
27
|
test_that "the help command is configured properly when created" do
|
28
28
|
Given {
|
29
|
-
|
29
|
+
app = TestApp.new
|
30
|
+
app.subcommand_option_handling :normal
|
31
|
+
@command = GLI::Commands::Help.new(app,@output,@error)
|
30
32
|
}
|
31
33
|
Then {
|
32
34
|
assert_equal 'help',@command.name.to_s
|
@@ -42,7 +44,9 @@ class TC_testHelp < Clean::Test::TestCase
|
|
42
44
|
|
43
45
|
test_that "the help command can be configured to skip things declaratively" do
|
44
46
|
Given {
|
45
|
-
|
47
|
+
app = TestApp.new
|
48
|
+
app.subcommand_option_handling :normal
|
49
|
+
@command = GLI::Commands::Help.new(app,@output,@error)
|
46
50
|
GLI::Commands::Help.skips_pre = false
|
47
51
|
GLI::Commands::Help.skips_post = false
|
48
52
|
GLI::Commands::Help.skips_around = false
|
@@ -59,7 +63,9 @@ class TC_testHelp < Clean::Test::TestCase
|
|
59
63
|
GLI::Commands::Help.skips_pre = false
|
60
64
|
GLI::Commands::Help.skips_post = false
|
61
65
|
GLI::Commands::Help.skips_around = false
|
62
|
-
|
66
|
+
app = TestApp.new
|
67
|
+
app.subcommand_option_handling :normal
|
68
|
+
@command = GLI::Commands::Help.new(app,@output,@error)
|
63
69
|
}
|
64
70
|
Then {
|
65
71
|
assert !@command.skips_pre
|
@@ -155,6 +161,7 @@ class TC_testHelp < Clean::Test::TestCase
|
|
155
161
|
Given {
|
156
162
|
app = TestApp.new
|
157
163
|
app.instance_eval do
|
164
|
+
subcommand_option_handling :normal
|
158
165
|
command :top do |top|
|
159
166
|
top.command :list do |list|
|
160
167
|
list.action do |g,o,a|
|
@@ -201,6 +208,7 @@ private
|
|
201
208
|
@app = TestApp.new
|
202
209
|
@app.instance_eval do
|
203
210
|
program_desc program_description
|
211
|
+
subcommand_option_handling :normal
|
204
212
|
|
205
213
|
unless omit_options
|
206
214
|
flags.each do |(description,arg,flag_names)|
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'pp'
|
3
|
+
|
4
|
+
class TC_testSubCommandParsing < Clean::Test::TestCase
|
5
|
+
include TestHelper
|
6
|
+
|
7
|
+
test_that "commands options may clash with globals and it gets sorted out" do
|
8
|
+
Given :app_with_subcommands_storing_results
|
9
|
+
When {
|
10
|
+
@app.run(%w(-f global command1 -f command -s foo))
|
11
|
+
}
|
12
|
+
Then {
|
13
|
+
assert_equal 'command1',@results[:command_name]
|
14
|
+
assert_equal 'global', @results[:global_options][:f],'global'
|
15
|
+
assert !@results[:global_options][:s]
|
16
|
+
assert_equal 'command', @results[:command_options][:f]
|
17
|
+
assert @results[:command_options][:s]
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
test_that "in legacy mode, subcommand options all share a namespace" do
|
22
|
+
Given :app_with_subcommands_storing_results
|
23
|
+
When {
|
24
|
+
@app.run(%w(-f global command1 -f command -s subcommand10 -f sub))
|
25
|
+
}
|
26
|
+
Then {
|
27
|
+
with_clue(@results) {
|
28
|
+
assert_equal 'subcommand10',@results[:command_name]
|
29
|
+
assert_equal 'global', @results[:global_options][:f],'global'
|
30
|
+
assert !@results[:global_options][:s]
|
31
|
+
assert_equal 'sub', @results[:command_options][:f]
|
32
|
+
assert @results[:command_options][:s]
|
33
|
+
assert_nil @results[:command_options][GLI::Command::PARENT]
|
34
|
+
assert_nil @results[:command_options][GLI::Command::PARENT]
|
35
|
+
}
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
test_that "in normal mode, each subcommand has its own namespace" do
|
40
|
+
Given :app_with_subcommands_storing_results, :normal
|
41
|
+
When {
|
42
|
+
@app.run(%w(-f global command1 -f command -s subcommand10 -f sub))
|
43
|
+
}
|
44
|
+
Then {
|
45
|
+
with_clue(@results) {
|
46
|
+
assert_equal 'subcommand10',@results[:command_name]
|
47
|
+
assert_equal 'global', @results[:global_options][:f],'global'
|
48
|
+
assert !@results[:global_options][:s]
|
49
|
+
assert_equal 'sub', @results[:command_options][:f]
|
50
|
+
assert !@results[:command_options][:s]
|
51
|
+
assert_equal 'command',@results[:command_options][GLI::Command::PARENT][:f]
|
52
|
+
assert @results[:command_options][GLI::Command::PARENT][:s]
|
53
|
+
}
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
def with_clue(message,&block)
|
59
|
+
block.call
|
60
|
+
rescue Exception
|
61
|
+
PP.pp message,dump=""
|
62
|
+
puts dump
|
63
|
+
raise
|
64
|
+
end
|
65
|
+
|
66
|
+
def app_with_subcommands_storing_results(subcommand_option_handling_strategy = :legacy)
|
67
|
+
@results = {}
|
68
|
+
@app = CLIApp.new
|
69
|
+
@app.subcommand_option_handling subcommand_option_handling_strategy
|
70
|
+
@app.flag ['f','flag']
|
71
|
+
@app.switch ['s','switch']
|
72
|
+
|
73
|
+
2.times do |i|
|
74
|
+
@app.command "command#{i}" do |c|
|
75
|
+
c.flag ['f','flag']
|
76
|
+
c.switch ['s','switch']
|
77
|
+
c.action do |global,options,args|
|
78
|
+
@results = {
|
79
|
+
:command_name => "command#{i}",
|
80
|
+
:global_options => global,
|
81
|
+
:command_options => options,
|
82
|
+
:args => args
|
83
|
+
}
|
84
|
+
end
|
85
|
+
|
86
|
+
2.times do |j|
|
87
|
+
c.command "subcommand#{i}#{j}" do |subcommand|
|
88
|
+
subcommand.flag ['f','flag']
|
89
|
+
subcommand.flag ['foo']
|
90
|
+
subcommand.switch ['s','switch']
|
91
|
+
subcommand.action do |global,options,args|
|
92
|
+
@results = {
|
93
|
+
:command_name => "subcommand#{i}#{j}",
|
94
|
+
:global_options => global,
|
95
|
+
:command_options => options,
|
96
|
+
:args => args
|
97
|
+
}
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/test/tc_subcommands.rb
CHANGED
data/test/tc_switch.rb
CHANGED
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
5
|
-
prerelease:
|
4
|
+
version: 2.6.0.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- David Copeland
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -173,6 +173,8 @@ files:
|
|
173
173
|
ZmVhdHVyZXMvc3VwcG9ydC9lbnYucmI=
|
174
174
|
- !binary |-
|
175
175
|
ZmVhdHVyZXMvdG9kby5mZWF0dXJl
|
176
|
+
- !binary |-
|
177
|
+
ZmVhdHVyZXMvdG9kb19sZWdhY3kuZmVhdHVyZQ==
|
176
178
|
- !binary |-
|
177
179
|
Z2xpLmNoZWF0
|
178
180
|
- !binary |-
|
@@ -187,6 +189,8 @@ files:
|
|
187
189
|
bGliL2dsaS9hcHBfc3VwcG9ydC5yYg==
|
188
190
|
- !binary |-
|
189
191
|
bGliL2dsaS9jb21tYW5kLnJi
|
192
|
+
- !binary |-
|
193
|
+
bGliL2dsaS9jb21tYW5kX2ZpbmRlci5yYg==
|
190
194
|
- !binary |-
|
191
195
|
bGliL2dsaS9jb21tYW5kX2xpbmVfb3B0aW9uLnJi
|
192
196
|
- !binary |-
|
@@ -237,18 +241,20 @@ files:
|
|
237
241
|
bGliL2dsaS9jb21tYW5kcy9yZG9jX2RvY3VtZW50X2xpc3RlbmVyLnJi
|
238
242
|
- !binary |-
|
239
243
|
bGliL2dsaS9jb21tYW5kcy9zY2FmZm9sZC5yYg==
|
240
|
-
- !binary |-
|
241
|
-
bGliL2dsaS9jb3B5X29wdGlvbnNfdG9fYWxpYXNlcy5yYg==
|
242
244
|
- !binary |-
|
243
245
|
bGliL2dsaS9kc2wucmI=
|
244
246
|
- !binary |-
|
245
247
|
bGliL2dsaS9leGNlcHRpb25zLnJi
|
246
248
|
- !binary |-
|
247
249
|
bGliL2dsaS9mbGFnLnJi
|
250
|
+
- !binary |-
|
251
|
+
bGliL2dsaS9nbGlfb3B0aW9uX2Jsb2NrX3BhcnNlci5yYg==
|
248
252
|
- !binary |-
|
249
253
|
bGliL2dsaS9nbGlfb3B0aW9uX3BhcnNlci5yYg==
|
250
254
|
- !binary |-
|
251
255
|
bGliL2dsaS9vcHRpb25fcGFyc2VyX2ZhY3RvcnkucmI=
|
256
|
+
- !binary |-
|
257
|
+
bGliL2dsaS9vcHRpb25fcGFyc2luZ19yZXN1bHQucmI=
|
252
258
|
- !binary |-
|
253
259
|
bGliL2dsaS9vcHRpb25zLnJi
|
254
260
|
- !binary |-
|
@@ -273,6 +279,8 @@ files:
|
|
273
279
|
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vY29tbWFuZHMvbGlzdC5yYg==
|
274
280
|
- !binary |-
|
275
281
|
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vY29tbWFuZHMvbHMucmI=
|
282
|
+
- !binary |-
|
283
|
+
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vY29tbWFuZHMvbWFrZS5yYg==
|
276
284
|
- !binary |-
|
277
285
|
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vdmVyc2lvbi5yYg==
|
278
286
|
- !binary |-
|
@@ -281,6 +289,30 @@ files:
|
|
281
289
|
dGVzdC9hcHBzL3RvZG8vdG9kby5nZW1zcGVj
|
282
290
|
- !binary |-
|
283
291
|
dGVzdC9hcHBzL3RvZG8vdG9kby5yZG9j
|
292
|
+
- !binary |-
|
293
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L0dlbWZpbGU=
|
294
|
+
- !binary |-
|
295
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L1JFQURNRS5yZG9j
|
296
|
+
- !binary |-
|
297
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L1Jha2VmaWxl
|
298
|
+
- !binary |-
|
299
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2Jpbi90b2Rv
|
300
|
+
- !binary |-
|
301
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL2NvbW1hbmRzL2NyZWF0
|
302
|
+
ZS5yYg==
|
303
|
+
- !binary |-
|
304
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL2NvbW1hbmRzL2xpc3Qu
|
305
|
+
cmI=
|
306
|
+
- !binary |-
|
307
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL2NvbW1hbmRzL2xzLnJi
|
308
|
+
- !binary |-
|
309
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL3ZlcnNpb24ucmI=
|
310
|
+
- !binary |-
|
311
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L3Rlc3QvdGNfbm90aGluZy5yYg==
|
312
|
+
- !binary |-
|
313
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L3RvZG8uZ2Vtc3BlYw==
|
314
|
+
- !binary |-
|
315
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L3RvZG8ucmRvYw==
|
284
316
|
- !binary |-
|
285
317
|
dGVzdC9hcHBzL3RvZG9fcGx1Z2lucy9jb21tYW5kcy90aGlyZC5yYg==
|
286
318
|
- !binary |-
|
@@ -294,7 +326,7 @@ files:
|
|
294
326
|
- !binary |-
|
295
327
|
dGVzdC90Y19jb21tYW5kLnJi
|
296
328
|
- !binary |-
|
297
|
-
|
329
|
+
dGVzdC90Y19jb21wb3VuZF9jb21tYW5kLnJi
|
298
330
|
- !binary |-
|
299
331
|
dGVzdC90Y19kb2MucmI=
|
300
332
|
- !binary |-
|
@@ -305,6 +337,8 @@ files:
|
|
305
337
|
dGVzdC90Y19oZWxwLnJi
|
306
338
|
- !binary |-
|
307
339
|
dGVzdC90Y19vcHRpb25zLnJi
|
340
|
+
- !binary |-
|
341
|
+
dGVzdC90Y19zdWJjb21tYW5kX3BhcnNpbmcucmI=
|
308
342
|
- !binary |-
|
309
343
|
dGVzdC90Y19zdWJjb21tYW5kcy5yYg==
|
310
344
|
- !binary |-
|
@@ -333,16 +367,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
333
367
|
version: '0'
|
334
368
|
segments:
|
335
369
|
- 0
|
336
|
-
hash: -
|
370
|
+
hash: -2077859074459195456
|
337
371
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
372
|
none: false
|
339
373
|
requirements:
|
340
|
-
- - ! '
|
374
|
+
- - ! '>'
|
341
375
|
- !ruby/object:Gem::Version
|
342
|
-
version:
|
343
|
-
segments:
|
344
|
-
- 0
|
345
|
-
hash: -4071846445678563052
|
376
|
+
version: 1.3.1
|
346
377
|
requirements: []
|
347
378
|
rubyforge_project: gli
|
348
379
|
rubygems_version: 1.8.25
|
@@ -365,6 +396,8 @@ test_files:
|
|
365
396
|
ZmVhdHVyZXMvc3VwcG9ydC9lbnYucmI=
|
366
397
|
- !binary |-
|
367
398
|
ZmVhdHVyZXMvdG9kby5mZWF0dXJl
|
399
|
+
- !binary |-
|
400
|
+
ZmVhdHVyZXMvdG9kb19sZWdhY3kuZmVhdHVyZQ==
|
368
401
|
- !binary |-
|
369
402
|
dGVzdC9hcHBzL1JFQURNRS5tZA==
|
370
403
|
- !binary |-
|
@@ -381,6 +414,8 @@ test_files:
|
|
381
414
|
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vY29tbWFuZHMvbGlzdC5yYg==
|
382
415
|
- !binary |-
|
383
416
|
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vY29tbWFuZHMvbHMucmI=
|
417
|
+
- !binary |-
|
418
|
+
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vY29tbWFuZHMvbWFrZS5yYg==
|
384
419
|
- !binary |-
|
385
420
|
dGVzdC9hcHBzL3RvZG8vbGliL3RvZG8vdmVyc2lvbi5yYg==
|
386
421
|
- !binary |-
|
@@ -389,6 +424,30 @@ test_files:
|
|
389
424
|
dGVzdC9hcHBzL3RvZG8vdG9kby5nZW1zcGVj
|
390
425
|
- !binary |-
|
391
426
|
dGVzdC9hcHBzL3RvZG8vdG9kby5yZG9j
|
427
|
+
- !binary |-
|
428
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L0dlbWZpbGU=
|
429
|
+
- !binary |-
|
430
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L1JFQURNRS5yZG9j
|
431
|
+
- !binary |-
|
432
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L1Jha2VmaWxl
|
433
|
+
- !binary |-
|
434
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2Jpbi90b2Rv
|
435
|
+
- !binary |-
|
436
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL2NvbW1hbmRzL2NyZWF0
|
437
|
+
ZS5yYg==
|
438
|
+
- !binary |-
|
439
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL2NvbW1hbmRzL2xpc3Qu
|
440
|
+
cmI=
|
441
|
+
- !binary |-
|
442
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL2NvbW1hbmRzL2xzLnJi
|
443
|
+
- !binary |-
|
444
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L2xpYi90b2RvL3ZlcnNpb24ucmI=
|
445
|
+
- !binary |-
|
446
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L3Rlc3QvdGNfbm90aGluZy5yYg==
|
447
|
+
- !binary |-
|
448
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L3RvZG8uZ2Vtc3BlYw==
|
449
|
+
- !binary |-
|
450
|
+
dGVzdC9hcHBzL3RvZG9fbGVnYWN5L3RvZG8ucmRvYw==
|
392
451
|
- !binary |-
|
393
452
|
dGVzdC9hcHBzL3RvZG9fcGx1Z2lucy9jb21tYW5kcy90aGlyZC5yYg==
|
394
453
|
- !binary |-
|
@@ -402,7 +461,7 @@ test_files:
|
|
402
461
|
- !binary |-
|
403
462
|
dGVzdC90Y19jb21tYW5kLnJi
|
404
463
|
- !binary |-
|
405
|
-
|
464
|
+
dGVzdC90Y19jb21wb3VuZF9jb21tYW5kLnJi
|
406
465
|
- !binary |-
|
407
466
|
dGVzdC90Y19kb2MucmI=
|
408
467
|
- !binary |-
|
@@ -413,6 +472,8 @@ test_files:
|
|
413
472
|
dGVzdC90Y19oZWxwLnJi
|
414
473
|
- !binary |-
|
415
474
|
dGVzdC90Y19vcHRpb25zLnJi
|
475
|
+
- !binary |-
|
476
|
+
dGVzdC90Y19zdWJjb21tYW5kX3BhcnNpbmcucmI=
|
416
477
|
- !binary |-
|
417
478
|
dGVzdC90Y19zdWJjb21tYW5kcy5yYg==
|
418
479
|
- !binary |-
|