class CanvasCc::CanvasCC::RubricWriter
Constants
- RUBRICS_FILE
Public Class Methods
new(work_dir, *rubrics)
click to toggle source
# File lib/canvas_cc/canvas_cc/rubric_writer.rb, line 5 def initialize(work_dir, *rubrics) @work_dir = work_dir @rubrics = rubrics end
Public Instance Methods
write()
click to toggle source
# File lib/canvas_cc/canvas_cc/rubric_writer.rb, line 10 def write xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml| write_rubrics(xml) do |xml| @rubrics.each do |rubric| xml.rubric(identifier: rubric.identifier) do CanvasCc::CanvasCC::Models::Rubric::META_ATTRIBUTES.each do |attr| xml.send(attr, rubric.send(attr)) unless rubric.send(attr).nil? end write_criteria xml, rubric end end end end.to_xml File.open(File.join(@work_dir, CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR, RUBRICS_FILE), 'w') { |f| f.write(xml) } end
write_criteria(xml, rubric)
click to toggle source
# File lib/canvas_cc/canvas_cc/rubric_writer.rb, line 26 def write_criteria(xml, rubric) xml.criteria do rubric.criteria.each do |criterion| xml.criterion do xml.criterion_id criterion.id CanvasCc::CanvasCC::Models::RubricCriterion::META_ATTRIBUTES.each do |attr| xml.send(attr, criterion.send(attr)) unless criterion.send(attr).nil? end xml.learning_outcome_identifierref criterion.learning_outcome.identifier if criterion.learning_outcome xml << CanvasCc::CanvasCC::RatingWriter.new(*criterion.ratings).write end end end end
Private Instance Methods
write_rubrics(xml) { |xml| ... }
click to toggle source
# File lib/canvas_cc/canvas_cc/rubric_writer.rb, line 42 def write_rubrics(xml) xml.rubrics( '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' ) { yield xml } end