class CanvasCc::CanvasCC::ModuleMetaWriter
Constants
- MODULE_META_FILE
Public Class Methods
new(work_dir, *canvas_modules)
click to toggle source
# File lib/canvas_cc/canvas_cc/module_meta_writer.rb, line 5 def initialize(work_dir, *canvas_modules) @work_dir = work_dir @canvas_modules = canvas_modules end
Public Instance Methods
write()
click to toggle source
# File lib/canvas_cc/canvas_cc/module_meta_writer.rb, line 10 def write xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml| xml.modules( 'xmlns' => 'http://canvas.instructure.com/xsd/cccv1p0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'http://canvas.instructure.com/xsd/cccv1p0 http://canvas.instructure.com/xsd/cccv1p0.xsd' ) { |xml| @canvas_modules.each_with_index { |mod, position| canvas_module(mod, xml, position) } } end.to_xml File.open(File.join(@work_dir, CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR, MODULE_META_FILE), 'w') { |f| f.write(xml) } end
Private Instance Methods
add_completion_requirements_to_xml(completion_requirements, xml)
click to toggle source
# File lib/canvas_cc/canvas_cc/module_meta_writer.rb, line 71 def add_completion_requirements_to_xml(completion_requirements, xml) completion_requirements.each do |comp_req| xml.completionRequirement('type' => comp_req.type){|xml| xml.identifierref comp_req.identifierref xml.min_score comp_req.min_score xml.max_score comp_req.max_score } end end
add_module_items_to_xml(module_items, xml)
click to toggle source
# File lib/canvas_cc/canvas_cc/module_meta_writer.rb, line 47 def add_module_items_to_xml(module_items, xml) module_items.each_with_index do |item, position| xml.item('identifier' => item.identifier) { |xml| xml.content_type(item.content_type) xml.workflow_state(item.workflow_state) xml.title(item.title) xml.position(position) xml.new_tab(item.new_tab) if item.new_tab xml.indent(item.indent) xml.identifierref(item.identifierref) if item.identifierref xml.url(item.url) if item.url } end end
add_prerequisites_to_xml(prerequisites, xml)
click to toggle source
# File lib/canvas_cc/canvas_cc/module_meta_writer.rb, line 62 def add_prerequisites_to_xml(prerequisites, xml) prerequisites.each do |pre| xml.prerequisite('type' => pre.type) { |xml| xml.title pre.title xml.identifierref pre.identifierref } end end
canvas_module(mod, xml, position)
click to toggle source
# File lib/canvas_cc/canvas_cc/module_meta_writer.rb, line 25 def canvas_module(mod, xml, position) xml.module('identifier' => mod.identifier) { xml.title mod.title xml.workflow_state mod.workflow_state xml.require_sequential_progress mod.require_sequential_progress unless mod.require_sequential_progress.nil? xml.start_at CanvasCc::CC::CCHelper.ims_datetime(mod.start_at) if mod.start_at xml.end_at CanvasCc::CC::CCHelper.ims_datetime(mod.end_at) if mod.end_at xml.unlock_at CanvasCc::CC::CCHelper.ims_datetime(mod.unlock_at) if mod.unlock_at xml.position(position) xml.items { |xml| add_module_items_to_xml(mod.module_items, xml) } xml.prerequisites { |xml| add_prerequisites_to_xml(mod.prerequisites, xml) } xml.completionRequirements {|xml| add_completion_requirements_to_xml(mod.completion_requirements, xml) } } end