Class: AtomicAssessmentsImport::ExamSoft::Extractor::OptionsDetector
- Inherits:
-
Object
- Object
- AtomicAssessmentsImport::ExamSoft::Extractor::OptionsDetector
- Defined in:
- lib/atomic_assessments_import/exam_soft/extractor/options_detector.rb
Constant Summary collapse
- OPTION_PATTERN =
/\A\s*(\*?)([a-oA-O])\s*[.)]\s*(.+)/m
Instance Method Summary collapse
- #detect ⇒ Object
-
#initialize(nodes) ⇒ OptionsDetector
constructor
A new instance of OptionsDetector.
Constructor Details
#initialize(nodes) ⇒ OptionsDetector
Returns a new instance of OptionsDetector.
9 10 11 |
# File 'lib/atomic_assessments_import/exam_soft/extractor/options_detector.rb', line 9 def initialize(nodes) @nodes = nodes end |
Instance Method Details
#detect ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/atomic_assessments_import/exam_soft/extractor/options_detector.rb', line 13 def detect = [] @nodes.each do |node| text = node.text.strip match = text.match(OPTION_PATTERN) next unless match marker = match[1] letter = match[2].downcase option_text = match[3].strip correct = marker == "*" || bold_node?(node) << { text: option_text, letter: letter, correct: correct } end end |