class Moodle2CC::Moodle2::Parsers::QuestionCategoryParser
Constants
- QUESTIONS_XML
Public Class Methods
new(backup_dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_category_parser.rb, line 7 def initialize(backup_dir) @backup_dir = backup_dir end
Public Instance Methods
parse()
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_category_parser.rb, line 11 def parse File.open(File.join(@backup_dir, QUESTIONS_XML)) do |f| root_xml = Nokogiri::XML(f) root_xml.search('/question_categories/question_category').map { |node| question_category_parser(node) } end end
Private Instance Methods
question_category_parser(node)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_category_parser.rb, line 20 def question_category_parser(node) category = Models::Quizzes::QuestionCategory.new category.id = node.at_xpath('@id').value category.name = parse_text(node, 'name') category.context_id = parse_text(node, 'contextid') category.context_level = parse_text(node, 'contextlevel') category.context_instance_id = parse_text(node, 'contextinstanceid') category.info = parse_text(node, 'info') category.info_format = parse_text(node, 'infoformat') category.stamp = parse_text(node, 'stamp') category.parent = parse_text(node, 'parent') category.sort_order = parse_text(node, 'sortorder') category.questions += node.search('questions/question').map { |question_node| question_parser(question_node) }.compact category end
question_parser(node)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_category_parser.rb, line 38 def question_parser(node) begin Parsers::QuestionParsers::QuestionParser.parse(node) rescue Exception => e Moodle2CC::OutputLogger.logger.info e.message nil end end