Class: Qti::Importer

Inherits:
Object
  • Object
show all
Defined in:
lib/qti.rb

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Importer

Returns a new instance of Importer.



5
6
7
8
9
# File 'lib/qti.rb', line 5

def initialize(path)
  Find.find(path) do |subdir|
    @path = subdir if subdir =~ /imsmanifest.xml/
  end
end

Instance Method Details

#assessment_item_refsObject



29
30
31
32
33
34
35
36
37
# File 'lib/qti.rb', line 29

def assessment_item_refs
  @assessment_item_refs ||= begin
    if @manifest.qti_1_href
      test_object.assessment_items
    else
      test_object.assessment_item_reference_hrefs
    end
  end
end

#create_assessment_item(assessment_item_ref) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/qti.rb', line 39

def create_assessment_item(assessment_item_ref)
  if @manifest.qti_1_href
    Qti::V1::Models::AssessmentItem.new(assessment_item_ref)
  else
    Qti::V2::Models::AssessmentItem.from_path!(assessment_item_ref)
  end
end

#import_manifestObject



11
12
13
14
15
# File 'lib/qti.rb', line 11

def import_manifest
  @manifest = Qti::Models::Manifest.from_path!(@path)
  raise 'Unsupported QTI version' if @manifest.assessment_test_href.nil?
  @manifest.assessment_test_href
end

#test_objectObject



17
18
19
# File 'lib/qti.rb', line 17

def test_object
  version_agnostic_test_object(import_manifest)
end

#version_agnostic_test_object(assessment_test_file) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/qti.rb', line 21

def version_agnostic_test_object(assessment_test_file)
  if @manifest.qti_1_href
    Qti::V1::Models::Assessment.from_path!(assessment_test_file)
  else
    Qti::V2::Models::AssessmentTest.from_path!(assessment_test_file)
  end
end