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
7 8 9 10 11 12 13 14 |
# 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) ⇒ Object
16 17 18 |
# File 'lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb', line 16 def self.register_parser_type(name) @@subclasses[name] = self end |
Instance Method Details
#parse_question(node, question_type = nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# 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 puts e. end end |