On Thu, Jul 26, 2012 at 8:59 PM, James Harrison <jam / jamandbees.net> wrote:

> On Thu, Jul 26, 2012 at 11:15 AM, Jes=FAs Gabriel y Gal=E1n
> <jgabrielygalan / gmail.com> wrote:
>>
>> On Thu, Jul 26, 2012 at 6:58 PM, James Harrison <jam / jamandbees.net>

>> This works:
>>
>> #!/usr/bin/env ruby
>> require "ostruct"
>> require "optparse"
>>
>> options =3D OpenStruct.new
>>
>> options.date =3D false
>>
>> option_parser =3D OptionParser.new do |opts|
>>   opts.on("-d", "--date DATE", String, "Optional: Specify date in
>> format 00-00-00") do |date|
>>     options.date =3D date
>>   end
>> end
>>
>> option_parser.parse!
>>
>> puts "<#{options.date}>"
>>
>> I had to add the DATE parameter in the long format specification and
>> also call parse!:

You can also have OptionParser convert it directly:

$ irb19 -r optparse -r optparse/date
irb(main):001:0> OptionParser.new{|o|o.on('-d D', Date){|v| p
v,v.class}}.parse %w{-d 2010-02-01}
#<Date: 2010-02-01 ((2455229j,0s,0n),+0s,2299161j)>
Date
=3D> []
irb(main):002:0> OptionParser.new{|o|o.on('-d D', DateTime){|v| p
v,v.class}}.parse %w{-d 2010-02-01}
#<DateTime: 2010-02-01T00:00:00+00:00 ((2455229j,0s,0n),+0s,2299161j)>
DateTime
=3D> []

Kind regards

robert

--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/