class Cyclical::MonthdaysFilter

Attributes

monthdays[R]

Public Class Methods

new(*monthdays) click to toggle source
# File lib/cyclical/filters/monthdays_filter.rb, line 6
def initialize(*monthdays)
  raise ArgumentError, "Specify at least one day of the month" if monthdays.empty?

  @monthdays = monthdays.sort
end

Public Instance Methods

match?(date) click to toggle source
# File lib/cyclical/filters/monthdays_filter.rb, line 12
def match?(date)
  last = date.end_of_month.day
  (@monthdays.include?(date.day) || @monthdays.include?(date.day - last - 1))
end
next(date) click to toggle source

FIXME - this can probably be calculated

# File lib/cyclical/filters/monthdays_filter.rb, line 22
def next(date)
  until match?(date)
    date += 1.day
  end

  date
end
previous(date) click to toggle source
# File lib/cyclical/filters/monthdays_filter.rb, line 30
def previous(date)
  until match?(date)
    date -= 1.day
  end

  date
end
step() click to toggle source
# File lib/cyclical/filters/monthdays_filter.rb, line 17
def step
  1.day
end