gli 2.5.6 → 2.6.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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 |-
|