class CanvasCc::Canvas::QuestionBank
Attributes
id[RW]
identifier[RW]
questions[RW]
title[RW]
Public Class Methods
new(question_category)
click to toggle source
# File lib/canvas_cc/canvas/question_bank.rb, line 6 def initialize(question_category) @id = question_category.id @title = question_category.name @identifier = create_key(@id, 'objectbank_') @question_category = question_category @questions = @question_category.questions.reject { |q| q.type == 'random' }.map do |question| Question.new question end end
Public Instance Methods
create_files(export_dir)
click to toggle source
# File lib/canvas_cc/canvas/question_bank.rb, line 27 def create_files(export_dir) create_qti_xml(export_dir) end
create_qti_xml(export_dir)
click to toggle source
# File lib/canvas_cc/canvas/question_bank.rb, line 31 def create_qti_xml(export_dir) path = File.join(export_dir, ASSESSMENT_NON_CC_FOLDER, "#{identifier}.xml.qti") FileUtils.mkdir_p(File.dirname(path)) File.open(path, 'w') do |file| node = Builder::XmlMarkup.new(:target => file, :indent => 2) node.instruct! node.questestinterop( 'xsi:schemaLocation' => "http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd", 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", 'xmlns' => "http://www.imsglobal.org/xsd/ims_qtiasiv1p2" ) do |root_node| root_node.objectbank(:ident => identifier) do |objectbank_node| objectbank_node.qtimetadata do |qtimetadata_node| qtimetadata_node.qtimetadatafield do |qtimetadatafield_node| qtimetadatafield_node.fieldlabel "bank_title" qtimetadatafield_node.fieldentry @title end end @questions.each do |question| question.create_item_xml(objectbank_node) if question end end end end end
create_resource_node(resources_node)
click to toggle source
# File lib/canvas_cc/canvas/question_bank.rb, line 16 def create_resource_node(resources_node) href = File.join(ASSESSMENT_NON_CC_FOLDER, "#{identifier}.xml.qti") resources_node.resource( :href => href, :type => LOR, :identifier => identifier ) do |resource_node| resource_node.file(:href => href) end end