class Martlet::Schedule

Attributes

semester[R]
year[R]

Public Class Methods

new(agent, semester, year) click to toggle source
# File lib/martlet/schedule.rb, line 5
def initialize(agent, semester, year)
  @agent    = agent
  @semester = semester
  @year     = year
  @html     = fetch_schedule_html
end

Public Instance Methods

fetch_courses() click to toggle source
# File lib/martlet/schedule.rb, line 12
def fetch_courses
  parser = ScheduleParser.new(@html)
  parser.parse_courses
end

Private Instance Methods

fetch_schedule_html() click to toggle source
# File lib/martlet/schedule.rb, line 35
def fetch_schedule_html
  page = @agent.post(schedule_url, schedule_params)
  page.body
end
number_from_semester(semester) click to toggle source
# File lib/martlet/schedule.rb, line 23
def number_from_semester(semester)
  case semester.to_s.downcase
  when 'winter' then '01'
  when 'summer' then '05'
  when 'fall'   then '09'
  end
end
schedule_params() click to toggle source
# File lib/martlet/schedule.rb, line 31
def schedule_params
  { 'term_in' => "#{@year}#{number_from_semester(@semester)}" }
end
schedule_url() click to toggle source
# File lib/martlet/schedule.rb, line 19
def schedule_url
  'https://horizon.mcgill.ca/pban1/bwskfshd.P_CrseSchdDetl'
end