Class: Qti::Importer

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, assessment_id = nil) ⇒ Importer

Returns a new instance of Importer.



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

def initialize(path, assessment_id = nil)
  @path, @package_root, @manifest = Importer.manifest(path)
  @assessment_id = assessment_id || @manifest.assessment_identifiers.first
  @import = @manifest.assessment_test(@assessment_id)
end

Instance Attribute Details

#assessment_idObject (readonly)

Returns the value of attribute assessment_id.



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

def assessment_id
  @assessment_id
end

#package_rootObject (readonly)

Returns the value of attribute package_root.



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

def package_root
  @package_root
end

Class Method Details

.assessment_identifiers_for(path) ⇒ Object



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

def self.assessment_identifiers_for(path)
  manifest(path)[2].assessment_identifiers
end

.manifest(path) ⇒ Object



27
28
29
30
31
32
# File 'lib/qti.rb', line 27

def self.manifest(path)
  mpath = manifest_path(path)
  package_root = File.dirname(mpath)
  manifest = Qti::Models::Manifest.from_path!(mpath, package_root = package_root)
  [mpath, package_root, manifest]
end

.manifest_path(path) ⇒ Object



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

def self.manifest_path(path)
  Find.find(path) do |subdir|
    return subdir if subdir =~ /imsmanifest.xml\z/
  end
  raise 'Manifest not found'
end

Instance Method Details

#assessment_item_refsObject



38
39
40
# File 'lib/qti.rb', line 38

def assessment_item_refs
  @import.assessment_items
end

#create_assessment_item(assessment_item) ⇒ Object



42
43
44
# File 'lib/qti.rb', line 42

def create_assessment_item(assessment_item)
  @import.create_assessment_item(assessment_item)
end

#create_question_group(question_group_ref) ⇒ Object



54
55
56
# File 'lib/qti.rb', line 54

def create_question_group(question_group_ref)
  @import.create_question_group(question_group_ref)
end

#create_stimulus(stimulus_ref) ⇒ Object



50
51
52
# File 'lib/qti.rb', line 50

def create_stimulus(stimulus_ref)
  @import.create_stimulus(stimulus_ref)
end

#stimulus_ref(assessment_item_ref) ⇒ Object



46
47
48
# File 'lib/qti.rb', line 46

def stimulus_ref(assessment_item_ref)
  @import.stimulus_ref(assessment_item_ref)
end

#test_objectObject



34
35
36
# File 'lib/qti.rb', line 34

def test_object
  @import
end