Class: CanvasCc::CanvasCC::RubricWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/canvas_cc/canvas_cc/rubric_writer.rb

Constant Summary collapse

RUBRICS_FILE =
'rubrics.xml'

Instance Method Summary collapse

Constructor Details

#initialize(work_dir, *rubrics) ⇒ RubricWriter

Returns a new instance of RubricWriter.



5
6
7
8
# File 'lib/canvas_cc/canvas_cc/rubric_writer.rb', line 5

def initialize(work_dir, *rubrics)
  @work_dir = work_dir
  @rubrics = rubrics
end

Instance Method Details

#writeObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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