Class: Qti::Models::Manifest

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

Constant Summary collapse

RESOURCE_QTI_TYPES =
%w[imsqti_test_xmlv2p1
imsqti_test_xmlv2p2
imsqti_xmlv1p2].freeze
ASSESSMENT_CLASSES =
{
  'imsqti_xmlv1p2' => Qti::V1::Models::Assessment,
  'imsqti_test_xmlv2p1' => Qti::V2::Models::AssessmentTest,
  'imsqti_test_xmlv2p2' => Qti::V2::Models::AssessmentTest
}.freeze
EMBEDDED_QTI_TYPES =
%w[imsqti_item_xmlv2p1
imsqti_item_xmlv2p2].freeze
EMBEDDED_NON_ASSESSMENT_ID =
'@embedded_non_assessment'.freeze

Constants inherited from Base

Base::ELEMENTS_REMAP

Instance Attribute Summary

Attributes inherited from Base

#doc, #manifest, #package_root, #path

Instance Method Summary collapse

Methods inherited from Base

#css_with_single_check, from_path!, #initialize, #object_tag_transformer, #parse_html, #parse_xml, #preprocess_xml_doc, #remap_href_path, #remap_unknown_tags_transformer, #sanitize_config, #sanitize_content!, #xpath_with_single_check

Constructor Details

This class inherits a constructor from Qti::Models::Base

Instance Method Details

#assessment_identifiers(embedded_as_assessment = true) ⇒ Object



33
34
35
36
37
# File 'lib/qti/models/manifest.rb', line 33

def assessment_identifiers(embedded_as_assessment = true)
  id_list = identifier_list('/assessment')
  return id_list + [EMBEDDED_NON_ASSESSMENT_ID] if embedded_as_assessment && embedded_non_assessment?
  id_list
end

#assessment_test(resource_id = nil) ⇒ Object



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

def assessment_test(resource_id = nil)
  resource_id ||= assessment_identifiers.first
  test = assessment_from_identifier(resource_id)
  test.manifest = self
  test
end

#identifier_list(rsc_type) ⇒ Object



43
44
45
46
47
# File 'lib/qti/models/manifest.rb', line 43

def identifier_list(rsc_type)
  RESOURCE_QTI_TYPES.map do |v|
    xmlns_resource_list("[#{rtype_predicate(v, rsc_type)}]").map { |r| r[:identifier] }
  end.flatten
end

#question_bank_identifiersObject



39
40
41
# File 'lib/qti/models/manifest.rb', line 39

def question_bank_identifiers
  identifier_list('/question-bank')
end

#raise_unsupportedObject



29
30
31
# File 'lib/qti/models/manifest.rb', line 29

def raise_unsupported
  raise Qti::UnsupportedSchema, 'Unsupported QTI version'
end