class Moodle2CC::CanvasCC::FileMetaWriter

Constants

FILE_META_FILE

Public Class Methods

new(work_dir, *canvas_files) click to toggle source
# File lib/moodle2cc/canvas_cc/file_meta_writer.rb, line 6
def initialize(work_dir, *canvas_files)
  @work_dir = work_dir
  @canvas_files = canvas_files
end

Public Instance Methods

write() click to toggle source
# File lib/moodle2cc/canvas_cc/file_meta_writer.rb, line 11
def write
  copy_files
  write_xml
end

Private Instance Methods

copy_files() click to toggle source
# File lib/moodle2cc/canvas_cc/file_meta_writer.rb, line 18
def copy_files

  @canvas_files.each do |canvas_file|
    FileUtils.mkdir_p(File.dirname(File.join(@work_dir, canvas_file.href)))
    FileUtils.cp(canvas_file.file_location, File.join(@work_dir, canvas_file.href))
  end
end
write_xml() click to toggle source
# File lib/moodle2cc/canvas_cc/file_meta_writer.rb, line 26
def write_xml
  xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
    xml.fileMeta(
      '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'
    )
  end.to_xml
  File.open(File.join(@work_dir, Moodle2CC::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR, FILE_META_FILE), 'w') { |f| f.write(xml) }
end