class CanvasCc::CanvasCC::AssignmentGroupWriter

Constants

ASSIGNMENT_GROUP_FILE

Public Class Methods

new(work_dir, assignment_groups) click to toggle source
# File lib/canvas_cc/canvas_cc/assignment_group_writer.rb, line 5
def initialize(work_dir, assignment_groups)
  @work_dir = work_dir
  @assignment_groups = assignment_groups
end

Public Instance Methods

write() click to toggle source
# File lib/canvas_cc/canvas_cc/assignment_group_writer.rb, line 10
def write
  xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
    write_assignment_groups(xml) do |xml|
      @assignment_groups.each do |ag|
        xml.assignmentGroup(:identifier => ag.identifier){
          xml.title ag.title
          xml.position ag.position
          xml.group_weight ag.group_weight
          write_rules(ag, xml)
        }
      end
    end
  end.to_xml
  File.open(File.join(@work_dir, CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR, ASSIGNMENT_GROUP_FILE), 'w') { |f| f.write(xml) }
end

Private Instance Methods

write_assignment_groups(xml) { |xml| ... } click to toggle source
# File lib/canvas_cc/canvas_cc/assignment_group_writer.rb, line 38
def write_assignment_groups(xml)
  xml.assignmentGroups(
    '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
write_rules(assignment_group, xml) click to toggle source
# File lib/canvas_cc/canvas_cc/assignment_group_writer.rb, line 28
def write_rules(assignment_group, xml)
  xml.rules{
    assignment_group.rules.each do |rule|
      xml.rule{
        rule.each { |k, v| xml.send(k, v) }
      }
    end
  }
end