From: Nexos Date: 2007-03-22T04:50:05+09:00 Subject: Re: Issue with Getopt-declare incorrect parameter specification On Mar 21, 5:08 pm, "gga" wrote: > On 21 mar, 07:41, "Nexos" wrote: > > > > > On 21 mar, 08:30, "gga" wrote: > > > > 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 .* > > > 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 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