class Moodle2CC::Moodle2::Parsers::LabelParser

Constants

LABEL_MODULE_NAME
LABEL_XML

Public Class Methods

new(backup_dir) click to toggle source
# File lib/moodle2cc/moodle2/parsers/label_parser.rb, line 8
def initialize(backup_dir)
  @backup_dir = backup_dir
end

Public Instance Methods

parse() click to toggle source
# File lib/moodle2cc/moodle2/parsers/label_parser.rb, line 12
def parse
  activity_dirs = activity_directories(@backup_dir, LABEL_MODULE_NAME)
  activity_dirs.map { |dir| parse_label(dir) }
end

Private Instance Methods

parse_label(dir) click to toggle source
# File lib/moodle2cc/moodle2/parsers/label_parser.rb, line 19
def parse_label(dir)
  label = Models::Label.new
  activity_dir = File.join(@backup_dir, dir)
  File.open(File.join(activity_dir, LABEL_XML)) do |f|
    label_xml = Nokogiri::XML(f)
    label.id = label_xml.at_xpath('/activity/label/@id').value
    label.module_id = label_xml.at_xpath('/activity/@moduleid').value
    label.name = parse_text(label_xml, '/activity/label/name')
    label.intro = parse_text(label_xml, '/activity/label/intro')
    label.intro_format = parse_text(label_xml, '/activity/label/introformat')
  end
  parse_module(activity_dir, label)
  label
end