class OsuCcScraper::Department
Public Class Methods
from_json(json)
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 18 def self.from_json(json) Department.new(*JSON.parse(json).values) end
Public Instance Methods
courses()
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 9 def courses html = fetch_courses parse_courses(html) end
to_json()
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 14 def to_json self.to_h.to_json end
Private Instance Methods
fetch_courses()
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 24 def fetch_courses open("#{ENDPOINT}/CourseList.aspx?subjectcode=#{subject_code}").read end
parse_course_course_number(row)
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 44 def parse_course_course_number(row) row.text.split(' ')[1] end
parse_course_name(row)
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 48 def parse_course_name(row) row.text.split(' ')[2..-2].join(" ") end
parse_course_subject_code(row)
click to toggle source
NE 311H INTRODUCTION TO THERMAL-FLUID SCIENCES (4)
# File lib/osu-cc-scraper/department.rb, line 40 def parse_course_subject_code(row) row.text.split(' ')[0] end
parse_courses(html)
click to toggle source
# File lib/osu-cc-scraper/department.rb, line 28 def parse_courses(html) document = Oga.parse_html(html) document.xpath("//tr//td//strong/a[last()]").map { |row| Course.new( subject_code, parse_course_course_number(row), parse_course_name(row) ) } end