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.



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

def end_time
  @end_time
end

#end_timesObject (readonly)

Returns the value of attribute end_times.



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

def end_times
  @end_times
end

#event_end_timesObject (readonly)

Returns the value of attribute event_end_times.



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

def event_end_times
  @event_end_times
end

#event_start_timesObject (readonly)

Returns the value of attribute event_start_times.



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

def event_start_times
  @event_start_times
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



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

def start_time
  @start_time
end

#start_timesObject (readonly)

Returns the value of attribute start_times.



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

def start_times
  @start_times
end

Class Method Details

.add_weeks(the_date, number) ⇒ Object



8
9
10
# File 'lib/coursegen/course/schedule/scheduler.rb', line 8

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

Instance Method Details

#event_date_by_index(ind) ⇒ Object



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

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

#null?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/coursegen/course/schedule/scheduler.rb', line 37

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



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/coursegen/course/schedule/scheduler.rb', line 12

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



24
25
26
27
28
29
30
31
# File 'lib/coursegen/course/schedule/scheduler.rb', line 24

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