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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#end_timeObject (readonly)

Returns the value of attribute end_time.



10
11
12
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def end_time
  @end_time
end

#end_timesObject (readonly)

Returns the value of attribute end_times.



10
11
12
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def end_times
  @end_times
end

#event_end_timesObject (readonly)

Returns the value of attribute event_end_times.



10
11
12
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def event_end_times
  @event_end_times
end

#event_start_timesObject (readonly)

Returns the value of attribute event_start_times.



10
11
12
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def event_start_times
  @event_start_times
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



10
11
12
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def start_time
  @start_time
end

#start_timesObject (readonly)

Returns the value of attribute start_times.



10
11
12
# File 'lib/coursegen/course/schedule/scheduler.rb', line 10

def start_times
  @start_times
end

Class Method Details

.add_weeks(the_date, number) ⇒ Object



12
13
14
# File 'lib/coursegen/course/schedule/scheduler.rb', line 12

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

Instance Method Details

#event_date_by_index(ind) ⇒ Object



46
47
48
# File 'lib/coursegen/course/schedule/scheduler.rb', line 46

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

#null?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/coursegen/course/schedule/scheduler.rb', line 50

def null?
  @start_date.nil?
end

#setup_from_args(start: nil, weekdays: nil, number: nil, skips: [], start_time: 0, end_time: 0, start_times: [], end_times: []) ⇒ Object



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

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

#setup_from_schedule_def(sdef) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/coursegen/course/schedule/scheduler.rb', line 28

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,
    start_time: sdef.start_time,
    end_time: sdef.end_time,
    start_times: sdef.start_times,
    end_times: sdef.end_times
  )
end