class ScheduleChecker::Schedule

Attributes

nonstop[R]
sessions[R]

Public Class Methods

new(nonstop=false) click to toggle source
# File lib/schedule-checker/schedule.rb, line 8
def initialize(nonstop=false)
  @sessions = [] # Session objects
  @nonstop = nonstop
end
nonstop() click to toggle source
# File lib/schedule-checker/schedule.rb, line 13
def self.nonstop
  ScheduleChecker::Schedule.new(true)
end

Public Instance Methods

add_session(session) click to toggle source
# File lib/schedule-checker/schedule.rb, line 17
def add_session(session)
  raise "can't add to a non-stop schedule" if @nonstop

  if self.in_a_session?(session.startpoint) || self.in_a_session?(session.endpoint)
    raise "new session overlaps with existing session"
  end
  @sessions << session
end
in_a_session?(t) click to toggle source
# File lib/schedule-checker/schedule.rb, line 26
def in_a_session?(t) # t is a timestamp
  return true if @nonstop
  @sessions.each{|s| return true if s.in_session?(t) }
  false
end