Class: Csv2qti::MultipleChoice

Inherits:
Question
  • Object
show all
Defined in:
lib/csv2qti/question_types/multiple_choice.rb

Constant Summary

Constants inherited from Question

Question::CORRECT, Question::DISTRACTOR_1, Question::DISTRACTOR_2, Question::LICENSE, Question::STEM, Question::TYPE

Instance Attribute Summary collapse

Attributes inherited from Question

#license, #stem

Instance Method Summary collapse

Methods inherited from Question

#add_to_assessment, #add_to_group, generate, #process_distractors, #process_stem, #to_s

Constructor Details

#initialize(row) ⇒ MultipleChoice

Returns a new instance of MultipleChoice.



6
7
8
9
10
# File 'lib/csv2qti/question_types/multiple_choice.rb', line 6

def initialize(row)
  super(row)
  @distractors = process_distractors(row)
  @answer = row[CORRECT]
end

Instance Attribute Details

#answerObject (readonly)

Returns the value of attribute answer.



4
5
6
# File 'lib/csv2qti/question_types/multiple_choice.rb', line 4

def answer
  @answer
end

#distractorsObject (readonly)

Returns the value of attribute distractors.



4
5
6
# File 'lib/csv2qti/question_types/multiple_choice.rb', line 4

def distractors
  @distractors
end

Instance Method Details

#generate_cc_questionObject



16
17
18
19
20
21
22
23
# File 'lib/csv2qti/question_types/multiple_choice.rb', line 16

def generate_cc_question
  question = CanvasCc::CanvasCC::Models::Question.create('multiple_choice_question')
  question.material = stem
  question.identifier = rand(10000)
  question.answers = @distractors.map {|d| make_answer(d)} << make_answer(@answer, true)

  question
end

#to_qtiObject



25
26
27
28
29
# File 'lib/csv2qti/question_types/multiple_choice.rb', line 25

def to_qti
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |node|
   CanvasCc::CanvasCC::MultipleChoiceQuestionWriter.write_question(node, generate_cc_question)
  end.doc.to_xml
end

#typeObject



12
13
14
# File 'lib/csv2qti/question_types/multiple_choice.rb', line 12

def type
  'MULTIPLE_CHOICE'
end