module CodeSchool

Scraper for CodeSchool website

Gem info

Constants

COURSES
COURSE_NAMES_XPATH
DATE
TEACHER_NAMES_XPATH
VERSION

Public Instance Methods

code_school_data() click to toggle source

JSON array of course names (string) and teacher(s) (array)

# File lib/code_school/code_school.rb, line 43
def code_school_data
  course_names.zip(teacher_names).map do |c_t|
    # { course: c_t[0], teacher: c_t[1] }
    { c_t[0] => c_t[1] }
  end.to_json
end
course_names() click to toggle source

Get an array of course names

# File lib/code_school/code_school.rb, line 22
def course_names
  courses.xpath(COURSE_NAMES_XPATH).map(&:text)
end
course_urls() click to toggle source

Change course names to urls

# File lib/code_school/code_school.rb, line 27
def course_urls
  # Turn ' ', '.' to '-'
  # Delete ':'
  course_names.map do |name|
    name.downcase.split(' ').join('-').tr('.', '-').delete(':')
  end
end
courses() click to toggle source

Gets array of courses

# File lib/code_school/code_school.rb, line 12
def courses
  Nokogiri::HTML(open(COURSES))
end
teacher(name) click to toggle source

Gets names of teacher(s) for one course

# File lib/code_school/code_school.rb, line 17
def teacher(name)
  Nokogiri::HTML(open("#{COURSES}/#{name}"))
end
teacher_names() click to toggle source

Get teachar's name by visiting each course page

# File lib/code_school/code_school.rb, line 36
def teacher_names
  course_urls.map do |course_url|
    teacher(course_url).xpath(TEACHER_NAMES_XPATH).map(&:text)
  end
end