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