como 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/CHANGELOG.rdoc +12 -0
  2. data/README.rdoc +11 -5
  3. data/Rakefile +6 -1
  4. data/doc/Como/ArgsParseState.html +912 -0
  5. data/doc/Como/ComoCommon.html +305 -0
  6. data/doc/Como/MainOpt.html +636 -0
  7. data/doc/Como/MasterOpt.html +636 -0
  8. data/doc/Como/Opt/ErrorWithData.html +304 -0
  9. data/doc/Como/Opt/InvalidOption.html +158 -0
  10. data/doc/Como/Opt/MissingArgument.html +158 -0
  11. data/doc/Como/Opt.html +6098 -0
  12. data/doc/Como/RuleCheck.html +933 -0
  13. data/doc/Como/RuleDisplay.html +1193 -0
  14. data/doc/Como/Spec.html +1750 -0
  15. data/doc/Como.html +625 -0
  16. data/doc/_index.html +242 -0
  17. data/doc/class_list.html +53 -0
  18. data/doc/css/common.css +1 -0
  19. data/doc/css/full_list.css +57 -0
  20. data/doc/css/style.css +338 -0
  21. data/doc/file.CHANGELOG.html +90 -0
  22. data/doc/file.README.html +94 -0
  23. data/doc/file.como.html +1962 -0
  24. data/doc/file_list.html +58 -0
  25. data/doc/frames.html +28 -0
  26. data/doc/index.html +94 -0
  27. data/doc/js/app.js +214 -0
  28. data/doc/js/full_list.js +178 -0
  29. data/doc/js/jquery.js +4 -0
  30. data/doc/method_list.html +838 -0
  31. data/doc/top-level-namespace.html +112 -0
  32. data/lib/como.rb +1660 -661
  33. data/test/como_compatible +37 -0
  34. data/test/como_config +44 -0
  35. data/test/como_options +36 -0
  36. data/test/como_queries +44 -0
  37. data/test/como_rule_1 +28 -0
  38. data/test/como_rule_2 +28 -0
  39. data/test/como_subcmd +72 -0
  40. data/test/como_subcmd_config +88 -0
  41. data/test/golden/compatible.txt +438 -0
  42. data/test/golden/config.txt +319 -0
  43. data/test/golden/options.txt +438 -0
  44. data/test/golden/queries.txt +78 -0
  45. data/test/golden/rule_1.txt +454 -0
  46. data/test/golden/rule_2.txt +476 -0
  47. data/test/golden/subcmd.txt +360 -0
  48. data/test/golden/subcmd_config.txt +534 -0
  49. data/test/test_como.rb +22 -328
  50. data/test/test_compatible +28 -0
  51. data/test/test_config +12 -0
  52. data/test/test_options +28 -0
  53. data/test/test_queries +7 -0
  54. data/test/test_rule_1 +27 -0
  55. data/test/test_rule_2 +27 -0
  56. data/test/test_subcmd +30 -0
  57. data/test/test_subcmd_config +31 -0
  58. metadata +62 -6
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.defineCheckHelp( "como_compatible", "Como Tester", "2013",
7
+ [
8
+ [ :silent, "help", "-h", "Display usage info." ],
9
+ [ :exclusive, "doc", nil, "Documentation." ],
10
+ [ :single, "file", "-f", "File argument." ],
11
+ [ :switch, "debug", nil, "Enable debugging." ],
12
+ [ :opt_single, "mode", "-m", "Mode." ],
13
+ [ :opt_multi, "params", nil, "Parameters." ],
14
+ [ :opt_any, "types", "-t", "Types." ],
15
+ [ :silent, "terminator", "-", "The terminator." ],
16
+ [ :multi, "dir", "-d", "Directory argument(s)." ],
17
+ [ :default, "Leftovers." ],
18
+ ] )
19
+
20
+
21
+ Opt.each do |o|
22
+ puts "Given \"#{o.name}\": #{o.given}"
23
+ end
24
+
25
+ Opt.each_given do |o|
26
+ puts "Value \"#{o.name}\": #{o.value}"
27
+ end
28
+
29
+ Opt[ 'params' ].given( true ) do |o|
30
+ o.params.each do |k,v|
31
+ puts "Param #{k}: #{v}"
32
+ end
33
+ end
34
+
35
+ if Opt.external
36
+ puts "External: #{Opt.external}"
37
+ end
data/test/como_config ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.command( "como_config", "Como Tester", "2013",
7
+ [
8
+ [ :exclusive, "doc", nil, "Documentation." ],
9
+ [ :single, "file", "-f", "File argument." ],
10
+ [ :switch, "debug", nil, "Enable debugging." ],
11
+ [ :opt_single, "mode", "-m", "Mode." ],
12
+ [ :opt_multi, "params", nil, "Parameters." ],
13
+ [ :opt_any, "types", "-t", "Types." ],
14
+ [ :silent, "terminator", "-", "The terminator." ],
15
+ [ :multi, "dir", "-d", "Directory argument(s)." ],
16
+ [ :default, "Leftovers." ],
17
+ ], {
18
+ :header => "Addition heading info.",
19
+ :footer => "Addition footer info.",
20
+ :subcheck => false,
21
+ :check_missing => false,
22
+ :tab => 10,
23
+ :help_exit => false,
24
+ :error_exit => false,
25
+ } )
26
+
27
+
28
+ Opt.each do |o|
29
+ puts "Given \"#{o.name}\": #{o.given}"
30
+ end
31
+
32
+ Opt.each_given do |o|
33
+ puts "Value \"#{o.name}\": #{o.value}"
34
+ end
35
+
36
+ Opt[ 'params' ].given( true ) do |o|
37
+ o.params.each do |k,v|
38
+ puts "Param #{k}: #{v}"
39
+ end
40
+ end
41
+
42
+ if Opt.external
43
+ puts "External: #{Opt.external}"
44
+ end
data/test/como_options ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.command( "como_options", "Como Tester", "2013",
7
+ [
8
+ [ :exclusive, "doc", nil, "Documentation." ],
9
+ [ :single, "file", "-f", "File argument." ],
10
+ [ :switch, "debug", nil, "Enable debugging." ],
11
+ [ :opt_single, "mode", "-m", "Mode." ],
12
+ [ :opt_multi, "params", nil, "Parameters." ],
13
+ [ :opt_any, "types", "-t", "Types." ],
14
+ [ :silent, "terminator", "-", "The terminator." ],
15
+ [ :multi, "dir", "-d", "Directory argument(s)." ],
16
+ [ :default, "Leftovers." ],
17
+ ] )
18
+
19
+
20
+ Opt.each do |o|
21
+ puts "Given \"#{o.name}\": #{o.given}"
22
+ end
23
+
24
+ Opt.each_given do |o|
25
+ puts "Value \"#{o.name}\": #{o.value}"
26
+ end
27
+
28
+ Opt[ 'params' ].given( true ) do |o|
29
+ o.params.each do |k,v|
30
+ puts "Param #{k}: #{v}"
31
+ end
32
+ end
33
+
34
+ if Opt.external
35
+ puts "External: #{Opt.external}"
36
+ end
data/test/como_queries ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.command( "como_queries", "Como Tester", "2013",
7
+ [
8
+ [ :exclusive, "doc", nil, "Documentation." ],
9
+ [ :switch, "debug", nil, "Enable debugging." ],
10
+ [ :opt_single, "mode", "-m", "Mode." ],
11
+ [ :opt_multi, "params", nil, "Parameters." ],
12
+ [ :opt_any, "types", "-t", "Types." ],
13
+ [ :default, "Leftovers." ],
14
+ ] )
15
+
16
+ Opt.each do |o|
17
+ puts "Given \"#{o.name}\": #{o.given}"
18
+ end
19
+
20
+ Opt.each_given do |o|
21
+ puts "Value \"#{o.name}\": #{o.value}"
22
+ end
23
+
24
+ Opt.main.suball do |o|
25
+ puts "Name: #{o.name}"
26
+ puts " Value: #{~o}" if o.given
27
+ end
28
+
29
+ puts "Given count: #{Opt.main.givenCount}"
30
+
31
+ puts "Mode value: #{Opt[ 'mode' ].apply( "default mode" )}"
32
+
33
+ Opt[ 'debug' ].given? do
34
+ puts "Debug option set."
35
+ end
36
+
37
+ Opt[ 'types' ].given do |value|
38
+ puts "Types values: #{value}"
39
+ end
40
+
41
+ if Opt[:default].given
42
+ puts "Default with \":default\": #{Opt[:default].value}"
43
+ puts "Default with \"nil\": #{Opt[nil].value}"
44
+ end
data/test/como_rule_1 ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.command( "como_rule_1", "Como Tester", "2013",
7
+ [
8
+ [ :exclusive, "doc", nil, "Documentation." ],
9
+ [ :opt_single, "file", "-f", "File argument." ],
10
+ [ :switch, "debug", nil, "Enable debugging." ],
11
+ [ :opt_single, "mode", "-m", "Mode." ],
12
+ [ :opt_multi, "params", nil, "Parameters." ],
13
+ [ :opt_any, "types", "-t", "Types." ],
14
+ [ :silent, "terminator", "-", "The terminator." ],
15
+ [ :opt_multi, "dir", "-d", "Directory argument(s)." ],
16
+ [ :default, "Leftovers." ],
17
+ ] )
18
+
19
+
20
+ Spec.checkRule do
21
+ one(
22
+ none,
23
+ any( 'debug', 'mode' ),
24
+ incr( 'params', 'types' ),
25
+ follow( '-', nil, '-d' ),
26
+ all( one( 'dir' ), one( 'file' ) ),
27
+ )
28
+ end
data/test/como_rule_2 ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.command( "como_rule_2", "Como Tester", "2013",
7
+ [
8
+ [ :exclusive, "doc", nil, "Documentation." ],
9
+ [ :opt_single, "file", "-f", "File argument." ],
10
+ [ :switch, "debug", nil, "Enable debugging." ],
11
+ [ :opt_single, "mode", "-m", "Mode." ],
12
+ [ :opt_multi, "params", nil, "Parameters." ],
13
+ [ :opt_any, "types", "-t", "Types." ],
14
+ [ :silent, "terminator", "-", "The terminator." ],
15
+ [ :opt_multi, "dir", "-d", "Directory argument(s)." ],
16
+ [ :default, "Leftovers." ],
17
+ ] )
18
+
19
+
20
+ Spec.checkRule do
21
+ one(
22
+ any( 'debug', 'mode' ),
23
+ follow( '-', nil, '-d', meh( 'debug' ) ),
24
+ incr( 'params', 'types' ),
25
+ none,
26
+ all( one( 'dir' ), one( 'file' ) ),
27
+ )
28
+ end
data/test/como_subcmd ADDED
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.program( "Como Tester", "2013" ) do
7
+
8
+ subcmd( "como_subcmd",
9
+ [
10
+ [ :opt_single, "password", "-p", "User password." ],
11
+ [ :opt_multi, "username", "-u", "Username(s)." ],
12
+ [ :silent, "terminator","-", "Terminator." ],
13
+ [ :subcmd, "add", nil, "Add file to repo." ],
14
+ [ :subcmd, "rm", nil, "Remove file from repo." ],
15
+ [ :subcmd, "commit", nil, "Commit (pending) changes to repo." ],
16
+ ], )
17
+
18
+ checkRule do
19
+ any( 'password', 'username' )
20
+ end
21
+
22
+
23
+ subcmd( "add",
24
+ [
25
+ [ :switch, "force", "-fo", "Force operation." ],
26
+ [ :opt_single, "username", "-u", "Username." ],
27
+ [ :single, "file", "-f", "File." ],
28
+ ] )
29
+
30
+
31
+ checkRule do
32
+ one( 'file', 'username', inv( '-fo' ) )
33
+ end
34
+
35
+
36
+ subcmd( "rm",
37
+ [
38
+ [ :switch, "force", "-fo", "Force operation." ],
39
+ [ :opt_single, "file", "-f", "File." ],
40
+ ] )
41
+
42
+ subcmd( "commit",
43
+ [
44
+ [ :switch, "quiet", "-q", "Quiet operation." ],
45
+ [ :opt_single, "username", "-u", "Username." ],
46
+ [ :default, "File(s) to commit." ],
47
+ ] )
48
+ end
49
+
50
+
51
+ def displayOptions( opt )
52
+ puts "Options for: #{opt.name}"
53
+
54
+ opt.each do |o|
55
+ puts " Given \"#{o.name}\": #{o.given}"
56
+ end
57
+
58
+ opt.each_given do |o|
59
+ puts " Value \"#{o.name}\": #{o.value}"
60
+ end
61
+
62
+ sub = opt.givenSubcmd
63
+ displayOptions( sub ) if sub
64
+
65
+ end
66
+
67
+ displayOptions( Opt.main )
68
+
69
+
70
+ if Opt.external
71
+ puts "External: #{Opt.external}"
72
+ end
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "como"
4
+ include Como
5
+
6
+ Spec.program( "Como Tester", "2013",
7
+ {
8
+ :header => "Addition heading info.",
9
+ :footer => "Addition footer info.",
10
+ :subcheck => false,
11
+ :check_missing => false,
12
+ :tab => 10,
13
+ :help_exit => false,
14
+ :error_exit => false,
15
+ } ) do
16
+
17
+ subcmd( "como_subcmd_config", [
18
+ [ :opt_single, "password", "-p", "User password." ],
19
+ [ :opt_multi, "username", "-u", "Username(s)." ],
20
+ [ :silent, "terminator","-", "Terminator." ],
21
+ [ :subcmd, "add", nil, "Add file to repo." ],
22
+ [ :subcmd, "rm", nil, "Remove file from repo." ],
23
+ [ :subcmd, "commit", nil, "Commit (pending) changes to repo." ],
24
+ ], )
25
+
26
+ checkRule do
27
+ any( 'password', 'username' )
28
+ end
29
+
30
+
31
+ subcmd( "add", [
32
+ [ :switch, "force", "-fo", "Force operation." ],
33
+ [ :opt_single, "username", "-u", "Username." ],
34
+ [ :single, "file", "-f", "File." ],
35
+ ], { :rulehelp => true, :help_exit => true } )
36
+
37
+
38
+ checkRule do
39
+ one( 'file', 'username', inv( '-fo' ) )
40
+ end
41
+
42
+
43
+ subcmd( "rm", [
44
+ [ :exclusive, "help", "-hm", "Help for me." ],
45
+ [ :switch, "force", "-fo", "Force operation." ],
46
+ [ :opt_single, "file", "-f", "File." ],
47
+ ], {
48
+ :autohelp => false,
49
+ :header => nil,
50
+ :footer => nil,
51
+ } )
52
+
53
+ subcmd( "commit", [
54
+ [ :switch, "quiet", "-q", "Quiet operation." ],
55
+ [ :opt_single, "username", "-u", "Username." ],
56
+ [ :default, "File(s) to commit." ],
57
+ ], {
58
+ :tab => 14,
59
+ :help_exit => true,
60
+ :error_exit => false,
61
+ } )
62
+
63
+ end
64
+
65
+
66
+
67
+ def displayOptions( opt )
68
+ puts "Options for: #{opt.name}"
69
+
70
+ opt.each do |o|
71
+ puts " Given \"#{o.name}\": #{o.given}"
72
+ end
73
+
74
+ opt.each_given do |o|
75
+ puts " Value \"#{o.name}\": #{o.value}"
76
+ end
77
+
78
+ sub = opt.givenSubcmd
79
+ displayOptions( sub ) if sub
80
+
81
+ end
82
+
83
+ displayOptions( Opt.main )
84
+
85
+
86
+ if Opt.external
87
+ puts "External: #{Opt.external}"
88
+ end