clasp-ruby 0.10.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.
@@ -0,0 +1,65 @@
1
+ #! /usr/bin/ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
4
+
5
+ require 'clasp'
6
+
7
+ require 'test/unit'
8
+
9
+ class Test_Arguments_2 < Test::Unit::TestCase
10
+
11
+ def test_combined_flags_0
12
+
13
+ aliases = [
14
+ ]
15
+ args = CLASP::Arguments.new [ '-abc' ], aliases
16
+
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_alias
23
+ assert_equal Hash.new, args.flags[0].extras
24
+
25
+ assert_equal 0, args.options.size
26
+
27
+ assert_equal 0, args.values.size
28
+ end
29
+
30
+ def test_combined_flags_1
31
+
32
+ aliases = [
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' ], aliases
38
+
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 aliases[0], args.flags[0].argument_alias
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 aliases[1], args.flags[1].argument_alias
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 aliases[2], args.flags[2].argument_alias
57
+ assert_equal Hash.new, args.flags[2].extras
58
+
59
+ assert_equal 0, args.options.size
60
+
61
+ assert_equal 0, args.values.size
62
+ end
63
+ end
64
+
65
+
@@ -0,0 +1,89 @@
1
+ #! /usr/bin/ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
4
+
5
+ require 'clasp'
6
+
7
+ require 'test/unit'
8
+
9
+ class Test_Arguments_3 < Test::Unit::TestCase
10
+
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
+ end
89
+
@@ -0,0 +1,73 @@
1
+ #! /usr/bin/ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
4
+
5
+ require 'clasp'
6
+
7
+ require 'test/unit'
8
+
9
+ class Test_defaults < Test::Unit::TestCase
10
+
11
+ def test_responds_to_Help
12
+
13
+ assert CLASP::Flag.respond_to? :Help
14
+ end
15
+
16
+ def test_Help_is_idempotent
17
+
18
+ help_1 = CLASP::Flag.Help
19
+ help_2 = CLASP::Flag.Help
20
+
21
+ assert_same help_1, help_2
22
+ end
23
+
24
+ def test_Help_attributes
25
+
26
+ assert_equal '--help', CLASP::Flag.Help.name
27
+
28
+ assert_equal [], CLASP::Flag.Help.aliases
29
+
30
+ assert_equal 'shows this help and terminates', CLASP::Flag.Help.help
31
+ end
32
+
33
+ def test_Help_extras
34
+
35
+ help1 = CLASP::Flag.Help
36
+ help2 = CLASP::Flag.Help(v1: 'v', v2: 2)
37
+
38
+ assert_equal Hash.new, help1.extras
39
+ assert_equal Hash[ [ [ :v1, 'v' ], [ :v2, 2 ] ] ], help2.extras
40
+ end
41
+
42
+ def test_responds_to_Version
43
+
44
+ assert CLASP::Flag.respond_to? :Version
45
+ end
46
+
47
+ def test_Version_is_idempotent
48
+
49
+ version_1 = CLASP::Flag.Version
50
+ version_2 = CLASP::Flag.Version
51
+
52
+ assert_same version_1, version_2
53
+ end
54
+
55
+ def test_Version_attributes
56
+
57
+ assert_equal '--version', CLASP::Flag.Version.name
58
+
59
+ assert_equal [], CLASP::Flag.Version.aliases
60
+
61
+ assert_equal 'shows version and terminates', CLASP::Flag.Version.help
62
+ end
63
+
64
+ def test_Version_extras
65
+
66
+ version1 = CLASP::Flag.Version
67
+ version2 = CLASP::Flag.Version(v1: 'v', v2: 2)
68
+
69
+ assert_equal Hash.new, version1.extras
70
+ assert_equal Hash[ [ [ :v1, 'v' ], [ :v2, 2 ] ] ], version2.extras
71
+ end
72
+ end
73
+
@@ -0,0 +1,149 @@
1
+ #! /usr/bin/ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
4
+
5
+ require 'clasp'
6
+
7
+ require 'test/unit'
8
+
9
+ class Test_Examples < Test::Unit::TestCase
10
+
11
+ def test_SimpleCommandLineNoAliases
12
+
13
+ argv = %w{ --show-all=true infile -c outfile }
14
+
15
+ args = CLASP::Arguments.new(argv)
16
+
17
+ assert_equal 1, args.flags.size
18
+ flag = args.flags[0]
19
+ assert_equal "-c", flag.name
20
+ assert_equal 1, args.options.size
21
+ option = args.options[0]
22
+ assert_equal "--show-all", option.name
23
+ assert_equal "true", option.value
24
+ assert_equal 2, args.values.size
25
+ assert_equal "infile", args.values[0]
26
+ assert_equal "outfile", args.values[1]
27
+ end
28
+
29
+ def test_UseOfSpecialDoubleSlashFlagToTreatAllSubsequentArgumentsAsValues
30
+
31
+ argv = %w{ --show-all=true -- infile outfile -c }
32
+
33
+ args = CLASP::Arguments.new(argv)
34
+
35
+ assert_equal 0, args.flags.size
36
+ option = args.options[0]
37
+ assert_equal "--show-all", option.name
38
+ assert_equal "true", option.value
39
+ assert_equal 3, args.values.size
40
+ assert_equal "infile", args.values[0]
41
+ assert_equal "outfile", args.values[1]
42
+ assert_equal "-c", args.values[2]
43
+ end
44
+
45
+ def test_UseOfFlagShortForms
46
+
47
+ aliases = [
48
+
49
+ CLASP.Flag('--verbose', alias: '-v'),
50
+ CLASP.Flag('--trace-output', aliases: [ '-t', '--trace' ]),
51
+ ]
52
+
53
+ argv = %w{ --trace -v }
54
+
55
+ args = CLASP::Arguments.new(argv, aliases)
56
+
57
+ assert_equal 2, args.flags.size
58
+ flag = args.flags[0]
59
+ assert_equal '--trace-output', flag.name
60
+ assert_equal '--trace', flag.given_name
61
+ flag = args.flags[1]
62
+ assert_equal '--verbose', flag.name
63
+ assert_equal '-v', flag.given_name
64
+ assert_equal 0, args.options.size
65
+ assert_equal 0, args.values.size
66
+ end
67
+
68
+ def test_UseOfFlagSingleShortFormsCombined
69
+
70
+ aliases = [
71
+
72
+ CLASP.Flag('--expand', alias: '-x'),
73
+ CLASP.Flag('--verbose', alias: '-v'),
74
+ CLASP.Flag('--trace-output', aliases: [ '-t', '--trace' ]),
75
+ ]
76
+
77
+ argv = %w{ -tvx }
78
+
79
+ args = CLASP::Arguments.new(argv, aliases)
80
+
81
+ assert_equal 3, args.flags.size
82
+ flag = args.flags[0]
83
+ assert_equal '--trace-output', flag.name
84
+ assert_equal '-tvx', flag.given_name
85
+ flag = args.flags[1]
86
+ assert_equal '--verbose', flag.name
87
+ assert_equal '-tvx', flag.given_name
88
+ flag = args.flags[2]
89
+ assert_equal '--expand', flag.name
90
+ assert_equal '-tvx', flag.given_name
91
+ assert_equal 0, args.options.size
92
+ assert_equal 0, args.values.size
93
+ end
94
+
95
+ def test_UseOfOptionShortForm
96
+
97
+ aliases = [
98
+
99
+ CLASP.Option('--show-all', alias: '-a'),
100
+ ]
101
+
102
+ argv = %w{ -c -a true infile outfile }
103
+
104
+ args = CLASP::Arguments.new(argv, aliases)
105
+
106
+ assert_equal 1, args.flags.size
107
+ flag = args.flags[0]
108
+ assert_equal "-c", flag.name
109
+ assert_equal 1, args.options.size
110
+ option = args.options[0]
111
+ assert_equal "--show-all", option.name
112
+ assert_equal "-a", option.given_name
113
+ assert_equal "true", option.value
114
+ assert_equal 2, args.values.size
115
+ assert_equal "infile", args.values[0]
116
+ assert_equal "outfile", args.values[1]
117
+ end
118
+
119
+ def test_UseOfFlagsAsAliasesForOption
120
+
121
+ aliases = [
122
+
123
+ CLASP.Flag('--dump-contents', alias: '-d'),
124
+ CLASP.Option('--log-level', alias: '-l'),
125
+ CLASP.Flag('--log-level=warning', alias: '-w'),
126
+ ]
127
+
128
+ argv = %w{ myfile -dw }
129
+
130
+ args = CLASP::Arguments.new(argv, aliases)
131
+
132
+ assert_equal 1, args.flags.size
133
+ flag = args.flags[0]
134
+ assert_equal "--dump-contents", flag.name
135
+ assert_equal "-dw", flag.given_name
136
+ assert_equal 1, flag.given_index
137
+ assert_equal 1, args.options.size
138
+ option = args.options[0]
139
+ assert_equal "--log-level", option.name
140
+ assert_equal "-dw", option.given_name
141
+ assert_equal 1, flag.given_index
142
+ assert_equal "warning", option.value
143
+ assert_equal 1, args.values.size
144
+ assert_equal "myfile", args.values[0]
145
+ end
146
+ end
147
+
148
+ # ############################## end of file ############################# #
149
+
@@ -0,0 +1,110 @@
1
+ #! /usr/bin/ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
4
+
5
+ require 'clasp'
6
+
7
+ require 'test/unit'
8
+
9
+ require 'stringio'
10
+
11
+ class Test_Usage < Test::Unit::TestCase
12
+
13
+ def test_empty_default
14
+
15
+ aliases = []
16
+
17
+ stream = StringIO.new
18
+
19
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog'
20
+
21
+ assert_equal "USAGE: myprog [ ... flags and options ... ]\n\n", stream.string
22
+ end
23
+
24
+ def test_empty_all
25
+
26
+ aliases = []
27
+
28
+ stream = StringIO.new
29
+
30
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog', flags_and_options: ''
31
+
32
+ assert_equal "USAGE: myprog\n\n", stream.string
33
+ end
34
+
35
+ def test_empty_all_with_info_line_of_one_string
36
+
37
+ aliases = []
38
+
39
+ stream = StringIO.new
40
+
41
+ info = 'myprog version'
42
+
43
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog', flags_and_options: '', info_lines: info
44
+
45
+ assert_equal "myprog version\nUSAGE: myprog\n\n", stream.string
46
+ end
47
+
48
+ def test_empty_all_with_info_lines
49
+
50
+ aliases = []
51
+
52
+ stream = StringIO.new
53
+
54
+ info_lines = [
55
+
56
+ 'Synesis Software My Program',
57
+ 'version 1',
58
+ ]
59
+
60
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog', flags_and_options: '', info_lines: info_lines
61
+
62
+ assert_equal "Synesis Software My Program\nversion 1\nUSAGE: myprog\n\n", stream.string
63
+ end
64
+
65
+ def test_empty_all_with_info_lines_including_version
66
+
67
+ aliases = []
68
+
69
+ stream = StringIO.new
70
+
71
+ info_lines = [
72
+
73
+ 'Synesis Software My Program',
74
+ :version
75
+ ]
76
+
77
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog', flags_and_options: '', info_lines: info_lines, version: [ 1, 0, 1], version_prefix: 'v'
78
+
79
+ assert_equal "Synesis Software My Program\nmyprog v1.0.1\nUSAGE: myprog\n\n", stream.string
80
+ end
81
+
82
+ def test_one_alias_default
83
+
84
+ aliases = [
85
+
86
+ CLASP::Flag.Version
87
+ ]
88
+
89
+ stream = StringIO.new
90
+
91
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog'
92
+
93
+ assert_equal "USAGE: myprog [ ... flags and options ... ]\n\nflags/options:\n\n\t--version\n\t\t#{CLASP::Flag.Version.help}\n\n", stream.string
94
+ end
95
+
96
+ def test_one_alias_all
97
+
98
+ aliases = [
99
+
100
+ CLASP::Flag.Version
101
+ ]
102
+
103
+ stream = StringIO.new
104
+
105
+ CLASP.show_usage aliases, stream: stream, program_name: 'myprog', flags_and_options: ''
106
+
107
+ assert_equal "USAGE: myprog\n\nflags/options:\n\n\t--version\n\t\t#{CLASP::Flag.Version.help}\n\n", stream.string
108
+ end
109
+ end
110
+