module HS::ChapterLoader

Constants

CUSTOM_LOADERS

Public Instance Methods

load_chapter(course, xml, &block) click to toggle source
# File lib/hs/loaders/chapter_loader.rb, line 13
def load_chapter(course, xml, &block)
  create_chapter(course, parse_xml(xml), &block)
end

Private Instance Methods

create_chapter(course, data, &block) click to toggle source
# File lib/hs/loaders/chapter_loader.rb, line 19
def create_chapter(course, data, &block)
  chapter = HS::Chapter.new(course, data.slice(:slug, :review_status))
  data[:_children].each { |child| load_a_part(chapter, child, &block) }
  chapter
end
load_a_part(chapter, child, &block) click to toggle source
# File lib/hs/loaders/chapter_loader.rb, line 25
def load_a_part(chapter, child, &block)
  if CUSTOM_LOADERS.include?(child[:_name])
    send("load_#{child[:_name]}", chapter, child, &block)
  else
    element = load_element(child)
    chapter.content << element if element
  end
end
load_intro(chapter, child) click to toggle source
# File lib/hs/loaders/chapter_loader.rb, line 38
def load_intro(chapter, child)
  chapter.intro = load_element(child)
end
load_modules(chapter, child) { |chapter, file| ... } click to toggle source
# File lib/hs/loaders/chapter_loader.rb, line 42
def load_modules(chapter, child)
  return unless block_given?
  files = child[:_children].map { |m| m[:file] }.compact
  files.each { |file| yield chapter, file }
end
load_title(chapter, child) click to toggle source
# File lib/hs/loaders/chapter_loader.rb, line 34
def load_title(chapter, child)
  chapter.title = get_text(child)
end