ivanvc-choice 0.1.3.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.
@@ -0,0 +1,103 @@
1
+ $:.unshift "../lib:lib"
2
+ require 'test/unit'
3
+ require 'choice'
4
+
5
+ class TestWriter < Test::Unit::TestCase
6
+
7
+ def setup
8
+ Choice.reset!
9
+ end
10
+
11
+ HELP_OUT = ''
12
+ def test_help
13
+ song = Choice::Option.new do
14
+ short '-s'
15
+ long '--song=SONG'
16
+ cast String
17
+ desc 'Your favorite GNR song.'
18
+ desc '(Default: MyMichelle)'
19
+ default 'MyMichelle'
20
+ end
21
+ dude = Choice::Option.new do
22
+ short '-d'
23
+ long '--dude=DUDE'
24
+ cast String
25
+ desc 'Your favorite GNR dude.'
26
+ desc '(Default: Slash)'
27
+ default 'Slash'
28
+ end
29
+
30
+ options = [[:song, song], [:dude, dude]]
31
+ args = { :banner => "Welcome to the jungle",
32
+ :header => [""],
33
+ :options => options,
34
+ :footer => ["", "Wake up."] }
35
+
36
+ help_string = <<-HELP
37
+ Welcome to the jungle
38
+
39
+ -s, --song=SONG Your favorite GNR song.
40
+ (Default: MyMichelle)
41
+ -d, --dude=DUDE Your favorite GNR dude.
42
+ (Default: Slash)
43
+
44
+ Wake up.
45
+ HELP
46
+
47
+ Choice::Writer.help(args, HELP_OUT, true)
48
+
49
+ assert_equal help_string, HELP_OUT
50
+ end
51
+
52
+ BANNER_OUT = ''
53
+ def test_banner
54
+ media = Choice::Option.new do
55
+ short '-m'
56
+ long '--media=MEDIA'
57
+ end
58
+ rom = Choice::Option.new do
59
+ short '-r'
60
+ long '--rom=ROM'
61
+ end
62
+
63
+ options = [[:media, media], [:rom, rom]]
64
+ args = { :header => [""],
65
+ :options => options }
66
+
67
+ help_string = <<-HELP
68
+ Usage: #{program} [-mr]
69
+
70
+ -m, --media=MEDIA
71
+ -r, --rom=ROM
72
+ HELP
73
+
74
+ Choice::Writer.help(args, BANNER_OUT, true)
75
+
76
+ assert_equal help_string, BANNER_OUT
77
+ end
78
+
79
+ SPILLOVER_OUT = ''
80
+ def test_desc_spillover
81
+ toolong = Choice::Option.new do
82
+ long '--thisisgonnabewaytoolongiswear=STRING'
83
+ desc 'Way too long, boy wonder.'
84
+ end
85
+
86
+ options = [[:toolong, toolong]]
87
+
88
+ help_string = <<-HELP
89
+ Usage: #{program}
90
+ --thisisgonnabewaytoolongiswear=STRING
91
+ Way too long, boy wonder.
92
+ HELP
93
+
94
+
95
+ Choice::Writer.help({:options => options}, SPILLOVER_OUT, true)
96
+
97
+ assert_equal help_string, SPILLOVER_OUT
98
+ end
99
+
100
+ def program
101
+ if (/(\/|\\)/ =~ $0) then File.basename($0) else $0 end
102
+ end
103
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ivanvc-choice
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Chris Wanstrath
8
+ autorequire: choice
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-09-27 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Choice is a simple little gem for easily defining and parsing command line options with a friendly DSL.
17
+ email: chris@ozmm.org
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - README
26
+ - CHANGELOG
27
+ - LICENSE
28
+ - lib/choice/lazyhash.rb
29
+ - lib/choice/option.rb
30
+ - lib/choice/parser.rb
31
+ - lib/choice/version.rb
32
+ - lib/choice/writer.rb
33
+ - lib/choice.rb
34
+ - test/test_choice.rb
35
+ - test/test_lazyhash.rb
36
+ - test/test_option.rb
37
+ - test/test_parser.rb
38
+ - test/test_writer.rb
39
+ - examples/ftpd.rb
40
+ - examples/gamble.rb
41
+ has_rdoc: false
42
+ homepage: http://choice.rubyforge.org/
43
+ licenses:
44
+ post_install_message:
45
+ rdoc_options: []
46
+
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
61
+ requirements: []
62
+
63
+ rubyforge_project:
64
+ rubygems_version: 1.3.5
65
+ signing_key:
66
+ specification_version: 2
67
+ summary: Choice is a command line option parser.
68
+ test_files: []
69
+