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
         
     |