Forum: Ruby Re: Runt: Matching the year

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Lipper, Matthew (Guest)
on 2005-12-15 16:41
(Received via mailing list)
> I downloaded runt to do some temporal expression work, and
> was wondering if there's any way to match against a year.
> From what I can tell I can match against month, day, hour,
> min, sec, but not the year.

Well, strictly speaking you could use a DateRange constructed
with January 1st and December 31st of the year(s) in question but this
is a pain...

>  Basically I'd like to have a timex that matches all dates
> with the year 2005.  If I create a date that has the year
> 2006, then include?
> should return false for that particular date.  Am I missing
> something in the docs?  I'd appreciate any help.
> Pat

I've just added the following class to CVS (apologize if Outlook mangles
the layout)

# Simple expression which returns true if the supplied arguments
# occur within the given year.
class YearTE

  def initialize(year)
    @year = year

  def include?(date)
    return date.year == @year


For an example of usage see the test case in
test/temporalexpressiontest.rb. Here's an excerpt:

def test_year_te

  # second sun of any month
  second_sun =, Sunday)

  # simple year matching expression which will return true for
  # any date in 2005
  year_te =

  # Second Sunday of a month in 2002
  dt_in_2002 = Date.civil(2002,9,8)

  # Second Sunday of a month in 2005
  dt_in_2005 = Date.civil(2005,12,11)

  # Matches

  # Does not match

Feel free to contact me directly if you have any questions or problems.

Thanks for using Runt!

This topic is locked and can not be replied to.