Module: ExploreCourses
- Defined in:
- lib/explorecourses/base.rb,
lib/explorecourses/course.rb,
lib/explorecourses/section.rb,
lib/explorecourses/schedule.rb,
lib/explorecourses/instructor.rb
Defined Under Namespace
Classes: Course, Instructor, Schedule, Section
Constant Summary
collapse
- URL_BASE_SEARCH =
"http://explorecourses.stanford.edu/search?"
- XML_VERSION =
"xml-20140630"
Class Method Summary
collapse
Class Method Details
.check_xml_version ⇒ Object
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/explorecourses/base.rb', line 9
def self.check_xml_version
request = Typhoeus::Request.new(URL_BASE_SEARCH, params: { view: XML_VERSION })
request.run
response = request.response
if response
doc = Nokogiri::XML(response.body)
return { deprecated: doc.at_xpath("//deprecated").content,
latest_version: doc.at_xpath("//latestVersion").content}
end
end
|
.query_courses(query) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/explorecourses/base.rb', line 20
def self.query_courses(query)
params = {
view: XML_VERSION,
q: query
}
request = Typhoeus::Request.new(URL_BASE_SEARCH, params: params)
request.run
response = request.response
if response
doc = Nokogiri::XML(response.body)
courses_xml = doc.xpath(".//course")
courses = []
courses_xml.each do |course_xml|
year = course_xml.at_xpath(".//year").content
subject = course_xml.at_xpath(".//subject").content
code = course_xml.at_xpath(".//code").content
title = course_xml.at_xpath(".//title").content
description = course_xml.at_xpath(".//description").content
gers = course_xml.at_xpath(".//gers").content
repeatable = course_xml.at_xpath(".//repeatable").content
grading = course_xml.at_xpath(".//grading").content
units_min = course_xml.at_xpath(".//unitsMin").content
units_max = course_xml.at_xpath(".//unitsMax").content
sections = retrieve_sections(course_xml.xpath(".//section"))
courses << Course.new(year, subject, code, title, description, gers, repeatable,
grading, units_min, units_max, sections)
end
return courses
end
end
|