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