Method: Runt::REYear#initialize
- Defined in:
- lib/runt/temporalexpression.rb
#initialize(start_month, *args) ⇒ REYear
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)
531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 |
# File 'lib/runt/temporalexpression.rb', line 531 def initialize(start_month, *args) @start_month = start_month if (args.nil? || args.size == NO_DAY) then # One argument given @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 |