Class: Scheduler

Inherits:
Object
  • Object
show all
Defined in:
lib/coursegen/course/schedule/scheduler.rb

Overview

Calculate days on which each event occurs, based on the configuration info

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add_weeks(the_date, number) ⇒ Object



6
7
8
# File 'lib/coursegen/course/schedule/scheduler.rb', line 6

def self.add_weeks(the_date, number)
  the_date.to_date + Integer(number) * 7
end

Instance Method Details

#event_date_by_index(ind) ⇒ Object



29
30
31
# File 'lib/coursegen/course/schedule/scheduler.rb', line 29

def event_date_by_index(ind)
  null? ? nil : @event_dates[ind]
end

#null?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/coursegen/course/schedule/scheduler.rb', line 33

def null?
  @start_date.nil?
end

#setup_from_args(start: nil, weekdays: nil, number: nil, skips: []) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def setup_from_args(start: nil, weekdays: nil, number: nil, skips: [])
  if start.nil?
    @start = nil
    return
  end
  convert_and_verify_arguments(start, weekdays, number, skips)
  @weekdays.sort!
  recalc_event_map
end

#setup_from_schedule_def(sdef) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/coursegen/course/schedule/scheduler.rb', line 20

def setup_from_schedule_def(sdef)
  if sdef.nil?
    @start = nil
    return
  end
  setup_from_args(start: sdef.first_day, weekdays: sdef.weekdays,
                  number: sdef.number, skips: sdef.skips)
end