class Clavius::Schedule

Attributes

configuration[R]

Public Class Methods

new(&config) click to toggle source
# File lib/clavius/schedule.rb, line 8
def initialize(&config)
  @configuration = Configuration.new(&config)
end

Public Instance Methods

active?(date) click to toggle source
# File lib/clavius/schedule.rb, line 36
def active?(date)
  date = date.to_date

  (weekdays.include?(date.wday) || included.include?(date)) &&
    !excluded.include?(date)
end
after(date) click to toggle source
# File lib/clavius/schedule.rb, line 27
def after(date)
  date
    .to_date
    .next_day
    .upto(Time::HEAT_DEATH)
    .lazy
    .select(&method(:active?))
end
before(date) click to toggle source
# File lib/clavius/schedule.rb, line 18
def before(date)
  date
    .to_date
    .prev_day
    .downto(Time::BIG_BANG)
    .lazy
    .select(&method(:active?))
end
between(start_date, end_date) click to toggle source
# File lib/clavius/schedule.rb, line 47
def between(start_date, end_date)
  start_date
    .to_date
    .upto(end_date.to_date.prev_day)
    .select(&method(:active?))
end
days(number) click to toggle source
# File lib/clavius/schedule.rb, line 43
def days(number)
  Calculation::DaysFrom.new(self, number)
end