Module: Qti::Models::ResourceGroup
- Included in:
- Manifest, V2::Models::NonAssessmentTest
- Defined in:
- lib/qti/models/resource.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
Instance Method Summary collapse
- #assessment_identifiers(embedded_as_assessment = true) ⇒ Object
- #asset_resource_for(rsc) ⇒ Object
- #asset_resource_for_canvas(rsc) ⇒ Object
- #asset_resource_for_ims(rsc) ⇒ Object
- #identifier_list(rsc_type) ⇒ Object
- #item_resources_v2 ⇒ Object
- #question_bank_identifiers ⇒ Object
- #resource_for(identifier, qti_type = nil) ⇒ Object
- #resource_node(type) ⇒ Object
- #resources(type = '') ⇒ Object
Instance Method Details
#assessment_identifiers(embedded_as_assessment = true) ⇒ Object
94 95 96 97 98 |
# File 'lib/qti/models/resource.rb', line 94 def assessment_identifiers( = true) id_list = identifier_list('/assessment') return id_list + [EMBEDDED_NON_ASSESSMENT_ID] if && id_list end |
#asset_resource_for(rsc) ⇒ Object
70 71 72 |
# File 'lib/qti/models/resource.rb', line 70 def asset_resource_for(rsc) asset_resource_for_canvas(rsc) || asset_resource_for_ims(rsc) end |
#asset_resource_for_canvas(rsc) ⇒ Object
74 75 76 |
# File 'lib/qti/models/resource.rb', line 74 def asset_resource_for_canvas(rsc) rsc.canvas_extra_file('.xml.qti') end |
#asset_resource_for_ims(rsc) ⇒ Object
78 79 80 |
# File 'lib/qti/models/resource.rb', line 78 def asset_resource_for_ims(rsc) rsc.href end |
#identifier_list(rsc_type) ⇒ Object
82 83 84 85 86 |
# File 'lib/qti/models/resource.rb', line 82 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 |
#item_resources_v2 ⇒ Object
104 105 106 107 108 |
# File 'lib/qti/models/resource.rb', line 104 def item_resources_v2 nodes = resources('[@type="imsqti_item_xmlv2p2"]') return nodes if nodes.count >= 1 resources('[@type="imsqti_item_xmlv2p1"]') end |
#question_bank_identifiers ⇒ Object
100 101 102 |
# File 'lib/qti/models/resource.rb', line 100 def question_bank_identifiers identifier_list('/question-bank') end |
#resource_for(identifier, qti_type = nil) ⇒ Object
88 89 90 91 92 |
# File 'lib/qti/models/resource.rb', line 88 def resource_for(identifier, qti_type = nil) qti_type = " and starts-with(@type, '#{qti_type}')" if qti_type base_xpath = "[@identifier='#{identifier}'#{qti_type}]" Resource.new(resource_node(base_xpath), self) end |
#resource_node(type) ⇒ Object
110 111 112 |
# File 'lib/qti/models/resource.rb', line 110 def resource_node(type) xpath_with_single_check(xpath_resource(type)) end |
#resources(type = '') ⇒ Object
66 67 68 |
# File 'lib/qti/models/resource.rb', line 66 def resources(type = '') @doc.xpath(xpath_resource(type)) end |