module HS::CourseLoader

Constants

KNOWN_LOADERS

Public Instance Methods

load_course(xml, &block) click to toggle source
# File lib/hs/loaders/course_loader.rb, line 11
def load_course(xml, &block)
  create_course(parse_xml(xml), &block)
end

Private Instance Methods

create_course(data, &block) click to toggle source
# File lib/hs/loaders/course_loader.rb, line 17
def create_course(data, &block)
  course = HS::Course.new(data.slice(:slug))
  data[:_children].each { |child| load_a_part(course, child, &block) }
  course
end
load_a_part(course, child, &block) click to toggle source
# File lib/hs/loaders/course_loader.rb, line 23
def load_a_part(course, child, &block)
  return unless KNOWN_LOADERS.include?(child[:_name])
  send("load_#{child[:_name]}", course, child, &block)
end
load_chapters(course, child) { |course, file| ... } click to toggle source
# File lib/hs/loaders/course_loader.rb, line 32
def load_chapters(course, child)
  return unless block_given?
  files = child[:_children].map { |c| c[:file] }.compact
  files.each { |file| yield course, file }
end
load_title(course, child) click to toggle source
# File lib/hs/loaders/course_loader.rb, line 28
def load_title(course, child)
  course.title = get_text(child)
end