Issue with Getopt-declare incorrect parameter specification


#1

Hi,

I’m having a weird problem with the “Getopt-declare” library. I wrote:

require ‘rubygems’
require ‘Getopt/Declare’

pattern = “.*”
args = Getopt::Declare.new(%q@

-p some regexp; defaults to “.*” (explanation)
{
pattern = regexp
}
@)

When I run: << ruby script.rb -p ‘[a-c].*’ >>

, I get the following error:

“Error: incorrect specification of ‘-p’ parameter”

Has someone an explanation for this ?

Thanks in advance,
Frédéric


#2

On 21 mar, 08:30, “gga” removed_email_address@domain.invalid wrote:

                            {

VERSION 1.22
-p => “hello”
Unused:
PATTERN .*

Thanks for the issue on the variable scope, but the error message
appears when you use a more complex argument value than ‘hello’,
i.e.

try.rb -p hello works fine

but

try.rb -p ‘[a-c].*’ gives the error message


#3

It seems to work for me with latest 1.22, albeit you should use
$pattern or @pattern. Otherwise pattern is a local variable to the
block.

require ‘rubygems’
require ‘Getopt/Declare’

@pattern = “."
args = Getopt::Declare.new(%q%
-p some regexp; defaults to ".
” (explanation)
{
@pattern = regexp
}
%)

puts “VERSION #{Getopt::Declare::VERSION}”
p args
puts “PATTERN #@pattern

try.rb -p hello
VERSION 1.22
-p => “hello”
Unused:
PATTERN .*


#4

On 21 mar, 07:41, “Nexos” removed_email_address@domain.invalid wrote:

block.
%)
PATTERN .*

Thanks for the issue on the variable scope, but the error message
appears when you use a more complex argument value than ‘hello’,
i.e.

try.rb -p hello works fine

but

try.rb -p ‘[a-c].*’ gives the error message

Oh, yes. This is a bug I recently stumbled upon and has been fixed.

The problem is in Getopt/Declare.rb, around line 668. There’s a:

code << ‘\b’

Just comment that out. I’ll be making a new release with that fix
soon, but I am also adding a more complex Test::Unit test suite to
catch those sort of errors.


#5

On Mar 21, 5:08 pm, “gga” removed_email_address@domain.invalid wrote:

require ‘rubygems’
puts “VERSION #{Getopt::Declare::VERSION}”
Thanks for the issue on the variable scope, but the error message

The problem is inGetopt/Declare.rb, around line 668. There’s a:

code << ‘\b’

Just comment that out. I’ll be making a new release with that fix
soon, but I am also adding a more complex Test::Unit test suite to
catch those sort of errors.

OK.
Just tried it and it worked fine.

Thanks for explanation!

Regards,

Frédéric Delanoy