getopt 1.3.3 → 1.3.4
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.
- 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
|