Class: Moodle2CC::Moodle2::Parsers::QuestionParsers::QuestionParser
- Inherits:
-
Object
- Object
- Moodle2CC::Moodle2::Parsers::QuestionParsers::QuestionParser
- Includes:
- ParserHelper
- Defined in:
- lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb
Direct Known Subclasses
CalculatedParser, MatchParser, MultianswerParser, MultichoiceParser, NumericalParser, RandomSAParser, ShortAnswerParser, TrueFalseParser
Constant Summary collapse
- @@subclasses =
{}
Constants included from ParserHelper
ParserHelper::FILES_XML, ParserHelper::IMS_FILEBASE_TOKEN, ParserHelper::MODULE_XML, ParserHelper::MOODLE_FILEBASE_TOKEN, ParserHelper::SLASH_TOKEN, ParserHelper::XML_NULL_VALUE
Class Method Summary collapse
Instance Method Summary collapse
Methods included from ParserHelper
#activity_directories, #parse_boolean, #parse_module, #parse_text
Class Method Details
.parse(node) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb', line 9 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) ⇒ Object
18 19 20 |
# File 'lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb', line 18 def self.register_parser_type(name) @@subclasses[name] = self end |
Instance Method Details
#parse_question(node, question_type = nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb', line 27 def parse_question(node, question_type = nil) question_type ||= parse_text(node, "qtype") question = Models::Quizzes::Question.create question_type question.id = node.at_xpath("@id").value question.bank_entry_id = parse_text(node, "bank_entry_id") 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. nil end |