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