Class: ScheduleFeed

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

Overview

Used in generating iCal feed. Given a data_adapter (who knows how to get data out and iterate across things) and a feed_builder (who knows how to turn that data into some kind of feed), produce the feed. This same class could also generate, for example, an RSs feed.

Instance Method Summary collapse

Constructor Details

#initialize(feed_builder, data_adapter) ⇒ ScheduleFeed

Returns a new instance of ScheduleFeed.



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

def initialize feed_builder, data_adapter
  @feed_builder = feed_builder
  @data = data_adapter
end

Instance Method Details

#renderObject



11
12
13
14
15
16
# File 'lib/coursegen/course/schedule/schedule_feed.rb', line 11

def render
  @feed_builder.feed_begin
  render_all_events
  @feed_builder.feed_end
  @feed_builder.feed_render
end

#render_all_eventsObject



18
19
20
21
22
# File 'lib/coursegen/course/schedule/schedule_feed.rb', line 18

def render_all_events
  @data.rows do |row_id|
    render_event(row_id) unless row_id.type == "subsection"
  end
end

#render_event(row_id) ⇒ Object



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

def render_event row_id
  title = COURSE_ABBREV + ": " + @data.cell_value(row_id, :title)
  dt_start = @data.cell_value(row_id, :start_date_time)
  dt_end = @data.cell_value(row_id, :end_date_time)
  desc = @data.cell_value(row_id, :full_desc)
  url = @data.cell_value(row_id, :url)
  @feed_builder.feed_event(title, dt_start, dt_end, desc, url)
end