class Scheduling::Quarterly

Public Instance Methods

occurances(time_range) click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 58
def occurances time_range
  raise RangeDecreasingError if time_range.decreasing?
  cur = Date.quarterly(time_range.min.year, time_range.min.quarter, qday)

  start = time_range.min
  if cur < start
    cur = cur.next_quarter
  end

  occurances = []

  stop = time_range.last
  if time_range.exclude_end?
    stop -= 1
  end

  while cur <= stop
    occurances.push cur
    cur = cur.next_quarter
  end

  return occurances
end