Synopsis
REYear.new(start_month [, (start_day | end_month), ...]
Args
One or two arguments given::
| start_month: | Start month. Valid values are 1..12. When no other parameters are given
this value will be used for the end month as well. Matches the entire month
through the ending month.
|
| end_month: | End month. Valid values are 1..12. When given in two argument form will
match through the entire month.
|
Three or four arguments given::
| start_month: | Start month. Valid values are 1..12.
|
| start_day: | Start day. Valid values are 1..31, depending on the month.
|
| end_month: | End month. Valid values are 1..12. If a fourth argument is not given, this
value will cover through the entire month.
|
| end_day: | End day. Valid values are 1..31, depending on the month.
|
Description
Create a new REYear expression expressing a range of months or
days within months within a year.
Usage
# Creates the range March 12th through May 23rd
expr = REYear.new(3,12,5,23)
# Creates the range March 1st through May 31st
expr = REYear.new(3,5)
# Creates the range March 12th through May 31st
expr = REYear.new(3,12,5)
# Creates the range March 1st through March 30th
expr = REYear.new(3)
[Source]
def initialize(start_month, *args)
@start_month = start_month
if (args.nil? || args.size == NO_DAY) then
@end_month = start_month
@start_day = NO_DAY
@end_day = NO_DAY
else
case args.size
when 1
@end_month = args[0]
@start_day = NO_DAY
@end_day = NO_DAY
when 2
@start_day = args[0]
@end_month = args[1]
@end_day = NO_DAY
when 3
@start_day = args[0]
@end_month = args[1]
@end_day = args[2]
else
raise "Invalid number of var args: 1 or 3 expected, #{args.size} given"
end
end
@same_month_dates_provided = (@start_month == @end_month) && (@start_day!=NO_DAY && @end_day != NO_DAY)
end