getopt 1.3.3 → 1.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +7 -0
- data/README +3 -2
- data/lib/getopt/long.rb +8 -4
- data/lib/getopt/std.rb +1 -1
- data/test/tc_getopt_long.rb +29 -1
- data/test/tc_getopt_std.rb +1 -1
- metadata +4 -4
data/CHANGES
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 7-Mar-2006 - 1.3.4
|
2
|
+
* Fixed Getopt::Long so that it can handle embedded hyphens in the long
|
3
|
+
form, e.g. --foo-bar. Thanks go to Mark Meves for the spot.
|
4
|
+
* Corresponding test suite additions.
|
5
|
+
* Added example to the 'example_long.rb' file that uses long form with
|
6
|
+
embedded hyphens.
|
7
|
+
|
1
8
|
== 22-Feb-2006 - 1.3.3
|
2
9
|
* Bug fix for the two argument form of Getopt::Long.getopts.
|
3
10
|
* Corresponding test suite additions.
|
data/README
CHANGED
@@ -70,8 +70,9 @@ Std.getopts(switches)
|
|
70
70
|
|
71
71
|
Long.getopts(switches)
|
72
72
|
Takes an array of switches beginning with "--" followed by one or more
|
73
|
-
characters, or "-
|
74
|
-
if any, can be specified as BOOLEAN, OPTIONAL,
|
73
|
+
alphanumeric or hyphen characters, or "-" followed by a single character.
|
74
|
+
The type of argument, if any, can be specified as BOOLEAN, OPTIONAL,
|
75
|
+
REQUIRED or INCREMENT.
|
75
76
|
|
76
77
|
The array should be in the form:
|
77
78
|
|
data/lib/getopt/long.rb
CHANGED
@@ -9,7 +9,7 @@ module Getopt
|
|
9
9
|
class LongError < StandardError; end
|
10
10
|
|
11
11
|
class Long
|
12
|
-
VERSION = "1.3.
|
12
|
+
VERSION = "1.3.4"
|
13
13
|
|
14
14
|
# Takes an array of switches. Each array consists of three elements.
|
15
15
|
def self.getopts(*switches)
|
@@ -54,9 +54,9 @@ module Getopt
|
|
54
54
|
}
|
55
55
|
}
|
56
56
|
|
57
|
-
re_long = /^(--\w+)
|
57
|
+
re_long = /^(--\w+[-\w+]*)?$/
|
58
58
|
re_short = /^(-\w)$/
|
59
|
-
re_long_eq = /^(--\w
|
59
|
+
re_long_eq = /^(--\w+[-\w+]*)?=(.*?)$|(-\w?)=(.*?)$/
|
60
60
|
re_short_sq = /^(-\w)(\S+?)$/
|
61
61
|
|
62
62
|
ARGV.each_with_index{ |opt, index|
|
@@ -196,7 +196,11 @@ module Getopt
|
|
196
196
|
|
197
197
|
# Get rid of leading "--" and "-" to make it easier to reference
|
198
198
|
hash.each{ |key, value|
|
199
|
-
|
199
|
+
if key[0,2] == '--'
|
200
|
+
nkey = key.sub('--', '')
|
201
|
+
else
|
202
|
+
nkey = key.sub('-', '')
|
203
|
+
end
|
200
204
|
hash.delete(key)
|
201
205
|
hash[nkey] = value
|
202
206
|
}
|
data/lib/getopt/std.rb
CHANGED
data/test/tc_getopt_long.rb
CHANGED
@@ -21,7 +21,7 @@ class TC_Getopt_Long < Test::Unit::TestCase
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_version
|
24
|
-
assert_equal("1.3.
|
24
|
+
assert_equal("1.3.4", Long::VERSION)
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_constants
|
@@ -63,6 +63,34 @@ class TC_Getopt_Long < Test::Unit::TestCase
|
|
63
63
|
assert_equal("world", @opts["bar"])
|
64
64
|
assert_equal("world", @opts["b"])
|
65
65
|
end
|
66
|
+
|
67
|
+
def test_getopts_long_embedded_hyphens
|
68
|
+
ARGV.push('--foo-bar', 'hello', '--test1-test2-test3', 'world')
|
69
|
+
assert_nothing_raised{
|
70
|
+
@opts = Long.getopts(
|
71
|
+
['--foo-bar', '-f', REQUIRED],
|
72
|
+
['--test1-test2-test3', '-t', REQUIRED]
|
73
|
+
)
|
74
|
+
}
|
75
|
+
assert_equal('hello', @opts['foo-bar'])
|
76
|
+
assert_equal('hello', @opts['f'])
|
77
|
+
assert_equal('world', @opts['test1-test2-test3'])
|
78
|
+
assert_equal('world', @opts['t'])
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_getopts_long_embedded_hyphens_using_equals_sign
|
82
|
+
ARGV.push('--foo-bar=hello', '--test1-test2-test3=world')
|
83
|
+
assert_nothing_raised{
|
84
|
+
@opts = Long.getopts(
|
85
|
+
['--foo-bar', '-f', REQUIRED],
|
86
|
+
['--test1-test2-test3', '-t', REQUIRED]
|
87
|
+
)
|
88
|
+
}
|
89
|
+
assert_equal('hello', @opts['foo-bar'])
|
90
|
+
assert_equal('hello', @opts['f'])
|
91
|
+
assert_equal('world', @opts['test1-test2-test3'])
|
92
|
+
assert_equal('world', @opts['t'])
|
93
|
+
end
|
66
94
|
|
67
95
|
def test_getopts_short_switch_squished
|
68
96
|
ARGV.push("-f", "hello", "-bworld")
|
data/test/tc_getopt_std.rb
CHANGED
metadata
CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: getopt
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.3.
|
7
|
-
date: 2006-
|
8
|
-
summary: Getopt::Std for Ruby
|
6
|
+
version: 1.3.4
|
7
|
+
date: 2006-03-07 00:00:00 -07:00
|
8
|
+
summary: Getopt::Std and Getopt::Long option parsers for Ruby
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: djberg96@gmail.com
|
12
12
|
homepage: http://www.rubyforge.org/projects/shards
|
13
13
|
rubyforge_project:
|
14
|
-
description: Getopt::Std for Ruby
|
14
|
+
description: Getopt::Std and Getopt::Long option parsers for Ruby
|
15
15
|
autorequire:
|
16
16
|
default_executable:
|
17
17
|
bindir: bin
|