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