class Moodle2CC::Moodle2::Parsers::QuestionParsers::QuestionParser
Public Class Methods
parse(node)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb, line 7 def self.parse(node) type = node.%('qtype').text if c = @@subclasses[type] c.new.parse_question(node) else raise "Unknown parser type: #{type}" end end
register_parser_type(name)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb, line 16 def self.register_parser_type(name) @@subclasses[name] = self end
Public Instance Methods
parse_question(node, question_type = nil)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb, line 25 def parse_question(node, question_type = nil) begin question_type ||= parse_text(node, 'qtype') question = Models::Quizzes::Question.create question_type question.id = node.at_xpath('@id').value question.parent = parse_text(node, 'parent') question.name = parse_text(node, 'name') question.question_text = parse_text(node, 'questiontext') question.question_text_format = parse_text(node, 'questiontextformat') question.general_feedback = parse_text(node, 'generalfeedback') question.default_mark = parse_text(node, 'defaultmark') question.max_mark = parse_text(node, 'maxmark') question.penalty = parse_text(node, 'penalty') question.qtype = parse_text(node, 'qtype') question.length = parse_text(node, 'length') question.stamp = parse_text(node, 'stamp') question.version = parse_text(node, 'version') question.hidden = parse_boolean(node, 'hidden') question rescue Exception => e Moodle2CC::OutputLogger.logger.info e.message nil end end