class ScheduleFeed

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.

Public Class Methods

new(feed_builder, data_adapter) click to toggle source
# File lib/coursegen/course/schedule/schedule_feed.rb, line 6
def initialize feed_builder, data_adapter
  @feed_builder = feed_builder
  @data = data_adapter
end

Public Instance Methods

render() click to toggle source
# 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_events() click to toggle source
# 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) click to toggle source
# 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