Florian Aßmann
9/2/2007 11:49:00 PM
Ok, I though you were familiar with some of the RubyDoc ressources...
Here I go:
ParseDate and Date are part of the Ruby StdLib, therefore in order to use this
you need to:
require 'parsedate'
require 'date'
Next thing I think you expect something like '1/20/2007' as dateformat:
/my_app.rb --startdate 1/20/2007
This 'll be parsed by:
ParseDate.parsedate('1/20/2007') # => [2007,1,20,nil,nil,nil]
To generate an instance of Date out of this we simply call Date.new, but wait,
Date.new only accepts 3 args (maybe 4, though).
Therefore I invoke the slice-method ([]) on the freshly baken array:
# I assume i = '1/20/2007'
ParseDate.parsedate(i)[0, 3] # => [2007,1,20]
To split the array into seperate arguments when I invoke Date.new I need the
*-Operator: a_method(*[1,2,3]) is like a_method(1,2,3)
Date.new(*ParseDate.parsedate(i)[0, 3]) # => <Date... >
Tada, you got your Date now...
Further reading:
Ruby Stdlib: Date and ParseDate
Ruby Classes and Libraries: Array.slice
Regards
Florian