getopt 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,7 @@
1
+ == 22-Feb-2006 - 1.3.3
2
+ * Bug fix for the two argument form of Getopt::Long.getopts.
3
+ * Corresponding test suite additions.
4
+
1
5
  == 13-Feb-2006 - 1.3.2
2
6
  * Improved error message if an option is passed without a preceding switch.
3
7
  * Minor documentation fixes and clarifications.
@@ -9,7 +9,7 @@ module Getopt
9
9
  class LongError < StandardError; end
10
10
 
11
11
  class Long
12
- VERSION = "1.3.2"
12
+ VERSION = "1.3.3"
13
13
 
14
14
  # Takes an array of switches. Each array consists of three elements.
15
15
  def self.getopts(*switches)
@@ -32,13 +32,18 @@ module Getopt
32
32
  switches.each{ |switch|
33
33
  valid.push(switch[0]) # Set valid long switches
34
34
 
35
- # Set type for long switch, default to BOOLEAN
36
- switch[2] ||= BOOLEAN
37
- types[switch[0]] = switch[2]
38
-
35
+ # Set type for long switch, default to BOOLEAN.
39
36
  # Create synonym hash. Default to first char of long switch for
40
37
  # short switch, e.g. "--verbose" creates a "-v" synonym.
41
- switch[1] ||= switch[0][1..2]
38
+ if switch[1].kind_of?(Fixnum)
39
+ switch[2] = switch[1]
40
+ types[switch[0]] = switch[2]
41
+ switch[1] = switch[0][1..2]
42
+ else
43
+ switch[2] ||= BOOLEAN
44
+ types[switch[0]] = switch[2]
45
+ switch[1] ||= switch[0][1..2]
46
+ end
42
47
 
43
48
  syns[switch[0]] = switch[1]
44
49
  syns[switch[1]] = switch[0]
@@ -1,7 +1,7 @@
1
1
  module Getopt
2
2
  class StdError < StandardError; end
3
3
  class Std
4
- VERSION = "1.3.2"
4
+ VERSION = "1.3.3"
5
5
 
6
6
  # Processes single character command line options with option
7
7
  # clustering. This information is parsed from ARGV and returned
@@ -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.2", Long::VERSION)
24
+ assert_equal("1.3.3", Long::VERSION)
25
25
  end
26
26
 
27
27
  def test_constants
@@ -101,6 +101,20 @@ class TC_Getopt_Long < Test::Unit::TestCase
101
101
  assert_equal(true, @opts.has_key?("f"))
102
102
  end
103
103
 
104
+ def test_short_switch_synonyms_with_explicit_types
105
+ ARGV.push("--verbose", "--test", "hello", "--foo")
106
+ assert_nothing_raised{
107
+ @opts = Long.getopts(
108
+ ["--verbose", BOOLEAN],
109
+ ["--test", REQUIRED],
110
+ ["--foo", BOOLEAN]
111
+ )
112
+ }
113
+ assert(@opts.has_key?("v"))
114
+ assert(@opts.has_key?("t"))
115
+ assert(@opts.has_key?("f"))
116
+ end
117
+
104
118
  def test_switches_with_required_arguments
105
119
  ARGV.push("--foo","1","--bar","hello")
106
120
  assert_nothing_raised{
metadata CHANGED
@@ -3,8 +3,8 @@ 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.2
7
- date: 2006-02-13 00:00:00 -07:00
6
+ version: 1.3.3
7
+ date: 2006-02-22 00:00:00 -07:00
8
8
  summary: Getopt::Std for Ruby
9
9
  require_paths:
10
10
  - lib