clasp-ruby 0.23.0.2 → 0.23.1
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/examples/cr-example.rb +16 -16
- data/examples/flag_and_option_specifications.rb +15 -15
- data/examples/show_usage_and_version.rb +10 -11
- data/lib/clasp/arguments.rb +86 -87
- data/lib/clasp/clasp.rb +15 -11
- data/lib/clasp/cli.rb +135 -134
- data/lib/clasp/old_module.rb +8 -8
- data/lib/clasp/specifications.rb +325 -322
- data/lib/clasp/util/exceptions.rb +21 -22
- data/lib/clasp/util/value_parser.rb +99 -101
- data/lib/clasp/version.rb +12 -12
- data/lib/clasp-ruby.rb +8 -7
- data/lib/clasp.rb +8 -7
- data/test/scratch/test_list_command_line.rb +6 -6
- data/test/scratch/test_specifications.rb +14 -14
- data/test/scratch/test_usage.rb +5 -5
- data/test/scratch/test_usage_with_duplicate_specifications.rb +5 -5
- data/test/unit/tc_ARGV_rewrite.rb +36 -36
- data/test/unit/tc_arguments_1.rb +708 -708
- data/test/unit/tc_arguments_2.rb +43 -43
- data/test/unit/tc_arguments_3.rb +77 -77
- data/test/unit/tc_arguments_inspect.rb +55 -55
- data/test/unit/tc_cli.rb +4 -4
- data/test/unit/tc_default_value.rb +91 -91
- data/test/unit/tc_defaults_1.rb +38 -38
- data/test/unit/tc_examples_Arguments.rb +130 -130
- data/test/unit/tc_extras.rb +24 -24
- data/test/unit/tc_option_required.rb +38 -38
- data/test/unit/tc_option_value_aliases.rb +44 -44
- data/test/unit/tc_specifications.rb +7 -7
- data/test/unit/tc_typed_options.rb +200 -200
- data/test/unit/tc_usage.rb +69 -69
- data/test/unit/tc_with_action.rb +23 -23
- metadata +9 -8
data/test/unit/tc_arguments_2.rb
CHANGED
@@ -8,57 +8,57 @@ require 'test/unit'
|
|
8
8
|
|
9
9
|
class Test_Arguments_2 < Test::Unit::TestCase
|
10
10
|
|
11
|
-
|
11
|
+
def test_combined_flags_0
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
specifications = [
|
14
|
+
]
|
15
|
+
args = CLASP::Arguments.new [ '-abc' ], specifications
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
assert_equal 1, args.flags.size
|
18
|
+
assert_equal '-abc', args.flags[0].name
|
19
|
+
assert_equal '-abc', args.flags[0].to_s
|
20
|
+
assert_equal 'abc', args.flags[0].given_label
|
21
|
+
assert_equal 1, args.flags[0].given_hyphens
|
22
|
+
assert_nil args.flags[0].argument_specification
|
23
|
+
assert_equal Hash.new, args.flags[0].extras
|
24
24
|
|
25
|
-
|
25
|
+
assert_equal 0, args.options.size
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
assert_equal 0, args.values.size
|
28
|
+
end
|
29
29
|
|
30
|
-
|
30
|
+
def test_combined_flags_1
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
32
|
+
specifications = [
|
33
|
+
CLASP.Flag('--a', alias: '-a'),
|
34
|
+
CLASP.Flag('--b', alias: '-b'),
|
35
|
+
CLASP.Flag('--c', alias: '-c'),
|
36
|
+
]
|
37
|
+
args = CLASP::Arguments.new [ '-abc' ], specifications
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
39
|
+
assert_equal 3, args.flags.size
|
40
|
+
assert_equal '--a', args.flags[0].name
|
41
|
+
assert_equal '--a', args.flags[0].to_s
|
42
|
+
assert_equal 'abc', args.flags[0].given_label
|
43
|
+
assert_equal 1, args.flags[0].given_hyphens
|
44
|
+
assert_equal specifications[0], args.flags[0].argument_specification
|
45
|
+
assert_equal Hash.new, args.flags[0].extras
|
46
|
+
assert_equal '--b', args.flags[1].name
|
47
|
+
assert_equal '--b', args.flags[1].to_s
|
48
|
+
assert_equal 'abc', args.flags[1].given_label
|
49
|
+
assert_equal 1, args.flags[1].given_hyphens
|
50
|
+
assert_equal specifications[1], args.flags[1].argument_specification
|
51
|
+
assert_equal Hash.new, args.flags[1].extras
|
52
|
+
assert_equal '--c', args.flags[2].name
|
53
|
+
assert_equal '--c', args.flags[2].to_s
|
54
|
+
assert_equal 'abc', args.flags[2].given_label
|
55
|
+
assert_equal 1, args.flags[2].given_hyphens
|
56
|
+
assert_equal specifications[2], args.flags[2].argument_specification
|
57
|
+
assert_equal Hash.new, args.flags[2].extras
|
58
58
|
|
59
|
-
|
59
|
+
assert_equal 0, args.options.size
|
60
60
|
|
61
|
-
|
62
|
-
|
61
|
+
assert_equal 0, args.values.size
|
62
|
+
end
|
63
63
|
end
|
64
64
|
|
data/test/unit/tc_arguments_3.rb
CHANGED
@@ -8,82 +8,82 @@ require 'test/unit'
|
|
8
8
|
|
9
9
|
class Test_Arguments_3 < Test::Unit::TestCase
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
11
|
+
def test_include_flag_1
|
12
|
+
|
13
|
+
args = CLASP::Arguments.new [ '-f1', 'value1', '--option1=value1', '--flag2' ], nil
|
14
|
+
|
15
|
+
assert args.flags.include? '-f1'
|
16
|
+
assert not(args.flags.include? '-f2')
|
17
|
+
assert args.flags.include? '--flag2'
|
18
|
+
assert not(args.flags.include? '--option1')
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_include_flag_2
|
22
|
+
|
23
|
+
aliases = [
|
24
|
+
CLASP.Flag('--flag1', alias: '-f1'),
|
25
|
+
]
|
26
|
+
args = CLASP::Arguments.new [ '-f1', 'value1', '--option1=value1', '--flag2' ], aliases
|
27
|
+
|
28
|
+
assert args.flags.include? '-f1'
|
29
|
+
assert args.flags.include? '--flag1'
|
30
|
+
assert not(args.flags.include? '-f2')
|
31
|
+
assert args.flags.include? '--flag2'
|
32
|
+
assert not(args.flags.include? '--option1')
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_combined_flags_1
|
36
|
+
|
37
|
+
aliases = [
|
38
|
+
CLASP.Flag('--delete', alias: '-d'),
|
39
|
+
CLASP.Flag('--update', alias: '-u'),
|
40
|
+
]
|
41
|
+
args = CLASP::Arguments.new [ '-du' ], aliases
|
42
|
+
|
43
|
+
assert args.flags.include? '--delete'
|
44
|
+
assert args.flags.include? '--update'
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_get_option_1
|
48
|
+
|
49
|
+
args = CLASP::Arguments.new [ '-f1', 'value1', '--option1=value1', '--flag2' ], nil
|
50
|
+
|
51
|
+
assert args.options.include? '--option1'
|
52
|
+
assert not(args.options.include? '--option1=value1')
|
53
|
+
assert not(args.options.include? '-f1')
|
54
|
+
assert not(args.options.include? '--flag2')
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_get_option_2
|
58
|
+
|
59
|
+
aliases = [
|
60
|
+
CLASP.Flag('--flag1', alias: '-f1'),
|
61
|
+
CLASP.Option('--option1', alias: '-o1'),
|
62
|
+
]
|
63
|
+
args = CLASP::Arguments.new [ '-f1', 'value1', '-o1=value1', '--flag2' ], aliases
|
64
|
+
|
65
|
+
assert args.options.include? '-o1'
|
66
|
+
assert args.options.include? '--option1'
|
67
|
+
assert not(args.options.include? '--option1=value1')
|
68
|
+
assert not(args.options.include? '-f1')
|
69
|
+
assert not(args.options.include? '--flag2')
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_combined_flags_and_options_1
|
73
|
+
|
74
|
+
aliases = [
|
75
|
+
CLASP.Flag('--delete', alias: '-d'),
|
76
|
+
CLASP.Flag('--update', alias: '-u'),
|
77
|
+
CLASP.Option('--encryption', alias: '-e'),
|
78
|
+
CLASP.Option('--encryption=blowfish', alias: '-b'),
|
79
|
+
]
|
80
|
+
args = CLASP::Arguments.new [ '-du', '-e', 'sha' ], aliases
|
81
|
+
|
82
|
+
assert args.flags.include? '--delete'
|
83
|
+
assert args.flags.include? '--update'
|
84
|
+
assert args.options.include? '--encryption'
|
85
|
+
assert_not_nil args.options.detect { |o| o == '--encryption' }
|
86
|
+
assert_nil args.options.detect { |o| o == '--blah' }
|
87
|
+
end
|
88
88
|
end
|
89
89
|
|
@@ -8,87 +8,87 @@ require 'test/unit'
|
|
8
8
|
|
9
9
|
class Test_Arguments_inspect_and_to_s < Test::Unit::TestCase
|
10
10
|
|
11
|
-
|
11
|
+
include CLASP
|
12
12
|
|
13
|
-
|
13
|
+
def test_no_arguments
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
argv = []
|
16
|
+
args = Arguments.new argv
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
assert_equal %Q<[]>, args.flags.to_s
|
19
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.flags.inspect)
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
assert_equal %Q<[]>, args.options.to_s
|
22
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.options.inspect)
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
def test_one_value
|
24
|
+
assert_equal %Q<[]>, args.values.to_s
|
25
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.values.inspect)
|
26
|
+
end
|
29
27
|
|
30
|
-
|
31
|
-
args = Arguments.new argv
|
28
|
+
def test_one_value
|
32
29
|
|
33
|
-
|
34
|
-
|
30
|
+
argv = [ 'val1' ]
|
31
|
+
args = Arguments.new argv
|
35
32
|
|
36
|
-
|
37
|
-
|
33
|
+
assert_equal %Q<[]>, args.flags.to_s
|
34
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.flags.inspect)
|
38
35
|
|
39
|
-
|
40
|
-
|
41
|
-
end
|
36
|
+
assert_equal %Q<[]>, args.options.to_s
|
37
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.options.inspect)
|
42
38
|
|
43
|
-
|
39
|
+
assert_equal %Q<["val1"]>, args.values.to_s
|
40
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\["val1"\].*>/, args.values.inspect)
|
41
|
+
end
|
44
42
|
|
45
|
-
|
46
|
-
args = Arguments.new argv
|
43
|
+
def test_three_values
|
47
44
|
|
48
|
-
|
49
|
-
|
45
|
+
argv = [ 'val1', 'val2', 'val3' ]
|
46
|
+
args = Arguments.new argv
|
50
47
|
|
51
|
-
|
52
|
-
|
48
|
+
assert_equal %Q<[]>, args.flags.to_s
|
49
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.flags.inspect)
|
53
50
|
|
54
|
-
|
55
|
-
|
56
|
-
end
|
51
|
+
assert_equal %Q<[]>, args.options.to_s
|
52
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.options.inspect)
|
57
53
|
|
58
|
-
|
54
|
+
assert_equal %Q<["val1", "val2", "val3"]>, args.values.to_s
|
55
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\["val1", "val2", "val3"\].*>/, args.values.inspect)
|
56
|
+
end
|
59
57
|
|
60
|
-
|
61
|
-
args = Arguments.new argv
|
58
|
+
def test_one_flag
|
62
59
|
|
63
|
-
|
64
|
-
|
60
|
+
argv = [ '-f' ]
|
61
|
+
args = Arguments.new argv
|
65
62
|
|
66
|
-
|
67
|
-
|
63
|
+
assert_equal %Q<["-f"]>, args.flags.to_s
|
64
|
+
if RUBY_VERSION >= '2'
|
68
65
|
|
69
|
-
|
70
|
-
assert_match /#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.options.inspect
|
71
|
-
|
72
|
-
assert_equal %Q<[]>, args.values.to_s
|
73
|
-
assert_match /#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.values.inspect
|
66
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[#<CLASP::Arguments::FlagArgument:0x.*-f.*>\].*>/, args.flags.inspect)
|
74
67
|
end
|
75
68
|
|
76
|
-
|
69
|
+
assert_equal %Q<[]>, args.options.to_s
|
70
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.options.inspect)
|
77
71
|
|
78
|
-
|
79
|
-
|
72
|
+
assert_equal %Q<[]>, args.values.to_s
|
73
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.values.inspect)
|
74
|
+
end
|
80
75
|
|
81
|
-
|
82
|
-
if RUBY_VERSION >= '2'
|
76
|
+
def test_two_flags
|
83
77
|
|
84
|
-
|
85
|
-
|
78
|
+
argv = [ '-f', '-g' ]
|
79
|
+
args = Arguments.new argv
|
86
80
|
|
87
|
-
|
88
|
-
|
81
|
+
assert_equal %Q<["-f", "-g"]>, args.flags.to_s
|
82
|
+
if RUBY_VERSION >= '2'
|
89
83
|
|
90
|
-
|
91
|
-
assert_match /#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.values.inspect
|
84
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[#<CLASP::Arguments::FlagArgument:0x.*-f.*-g.*>\].*>/, args.flags.inspect)
|
92
85
|
end
|
86
|
+
|
87
|
+
assert_equal %Q<[]>, args.options.to_s
|
88
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.options.inspect)
|
89
|
+
|
90
|
+
assert_equal %Q<[]>, args.values.to_s
|
91
|
+
assert_match(/#<Array:0x[0-9a-fA-Z]+\s+\[\].*>/, args.values.inspect)
|
92
|
+
end
|
93
93
|
end
|
94
94
|
|
data/test/unit/tc_cli.rb
CHANGED
@@ -14,12 +14,12 @@ require 'stringio'
|
|
14
14
|
|
15
15
|
class Test_CLI < Test::Unit::TestCase
|
16
16
|
|
17
|
-
|
17
|
+
def test_invalid_aliases_types
|
18
18
|
|
19
|
-
|
19
|
+
assert_raise_with_message(::TypeError, /each element in (?:aliases|specifications) array must be one of the types CLASP::FlagSpecification, CLASP::OptionSpecification, or CLASP::AliasSpecification/) { CLASP.show_usage([ 'abc', :def ]) }
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
assert_raise_with_message(::TypeError, /each element in (?:aliases|specifications) array must be one of the types CLASP::FlagSpecification, CLASP::OptionSpecification, or CLASP::AliasSpecification/) { CLASP.show_version([ 'abc', :def ]) }
|
22
|
+
end
|
23
23
|
end
|
24
24
|
|
25
25
|
end # RUBY_VERSION
|