Class: CanvasQtiToLearnosityConverter::ShortAnswerQuestion

Inherits:
QuizQuestion
  • Object
show all
Defined in:
lib/canvas_qti_to_learnosity_converter/questions/short_answer.rb

Overview

This is fill in the blank in the Canvas UI, but it is actually a short answer type.

Instance Method Summary collapse

Methods inherited from QuizQuestion

#convert, #dynamic_content_data, #extract_mattext, #extract_points_possible, #extract_stimulus, #initialize, #make_identifier, #process_assets!

Constructor Details

This class inherits a constructor from CanvasQtiToLearnosityConverter::QuizQuestion

Instance Method Details

#add_learnosity_assets(assets, path, learnosity) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/canvas_qti_to_learnosity_converter/questions/short_answer.rb', line 31

def add_learnosity_assets(assets, path, learnosity)
  process_assets!(
    assets,
    path,
    learnosity[:stimulus]
  )
  learnosity
end

#extract_response_idObject



7
8
9
# File 'lib/canvas_qti_to_learnosity_converter/questions/short_answer.rb', line 7

def extract_response_id()
  @xml.css("item > presentation > response_str").attribute("ident").value
end

#extract_validationObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/canvas_qti_to_learnosity_converter/questions/short_answer.rb', line 20

def extract_validation()
  correct_responses = @xml.css('item > resprocessing >
    respcondition[continue="No"] > conditionvar > varequal')
  correct_response = { "value" => correct_responses.shift.text, "score" => extract_points_possible}
  {
    "scoring_type" => "exactMatch",
    "valid_response" => correct_response,
    "alt_responses" => correct_responses.map { |res| { "value" => res.text, "score" => extract_points_possible } }
  }
end

#to_learnosityObject



11
12
13
14
15
16
17
18
# File 'lib/canvas_qti_to_learnosity_converter/questions/short_answer.rb', line 11

def to_learnosity
  {
    type: "shorttext",
    stimulus: extract_stimulus(),
    validation: extract_validation(),
    response_id: extract_response_id(),
  }
end