class Qti::Models::Resource

Public Class Methods

new(node, parent) click to toggle source
# File lib/qti/models/resource.rb, line 8
def initialize(node, parent)
  @node = node
  @parent = parent
  @resource_type = node.attr('type')
  @identifier = node.attr('identifier')
  copy_paths_from_item(parent)
end

Public Instance Methods

canvas_extra_file(filename) click to toggle source
# File lib/qti/models/resource.rb, line 31
def canvas_extra_file(filename)
  dep_id = dependency_id
  rsc = @parent.resource_node(
    "[@identifier='#{dep_id}']/xmlns:file[#{xpath_endswith('@href', filename)}]/@href"
  )
  rsc&.content
end
canvas_metadata() click to toggle source
# File lib/qti/models/resource.rb, line 24
def canvas_metadata
  @canvas_meta_file ||= canvas_extra_file('assessment_meta.xml')
  return unless @canvas_meta_file
  meta_file = File.join(@package_root, @canvas_meta_file)
  @canvas_metadata ||= Qti::Models::AssessmentMeta.from_path!(meta_file) if @canvas_meta_file
end
href() click to toggle source
# File lib/qti/models/resource.rb, line 16
def href
  @href ||= @node.attr('href') || @node.xpath('xmlns:file/@href')&.first&.content
end
metadata() click to toggle source
# File lib/qti/models/resource.rb, line 20
def metadata
  @metadata ||= MetaData.new(@node)
end

Private Instance Methods

dependency_id() click to toggle source

Canvas Metadata Helpers

# File lib/qti/models/resource.rb, line 42
def dependency_id
  @node.xpath('xmlns:dependency/@identifierref')&.first&.content
end