Issue with Getopt-declare incorrect parameter specification

N

Nexos

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 <regexp> 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
 
G

gga

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 <regexp> 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 .*
 
N

Nexos

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 <regexp> some regexp; defaults to ".*" (explanation)
{
@pattern = regexp
}
%)

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


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
 
G

gga

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 <regexp> some regexp; defaults to ".*" (explanation)
{
@pattern = regexp
}
%)
puts "VERSION #{Getopt::Declare::VERSION}"
p args
puts "PATTERN #@pattern"
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

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.
 
N

Nexos

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

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 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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,818
Latest member
Brigette36

Latest Threads

Top