class CanvasCc::CanvasCC::FileMetaWriter
Constants
- FILE_META_FILE
Public Class Methods
new(work_dir, canvas_files, canvas_folders)
click to toggle source
# File lib/canvas_cc/canvas_cc/file_meta_writer.rb, line 6 def initialize(work_dir, canvas_files, canvas_folders) @work_dir = work_dir @canvas_files = [canvas_files].flatten.compact @canvas_folders = [canvas_folders].flatten.compact end
Public Instance Methods
write()
click to toggle source
# File lib/canvas_cc/canvas_cc/file_meta_writer.rb, line 12 def write copy_files unless @canvas_files.nil? write_xml do |xml| write_folders(xml) unless @canvas_folders.empty? write_files(xml) unless @canvas_files.empty? end end
Private Instance Methods
copy_files()
click to toggle source
# File lib/canvas_cc/canvas_cc/file_meta_writer.rb, line 51 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_files(xml)
click to toggle source
# File lib/canvas_cc/canvas_cc/file_meta_writer.rb, line 33 def write_files(xml) xml.files{ @canvas_files.each do |file| xml.file('identifier' => file.identifier){ xml.hidden file.hidden unless file.hidden.nil? xml.locked file.locked unless file.locked.nil? xml.unlock_at file.unlock_at unless file.unlock_at.nil? xml.lock_at file.lock_at unless file.lock_at.nil? unless file.usage_rights.nil? xml.usage_rights('use_justification' => file.usage_rights) { xml.license file.license } end } end } end
write_folders(xml)
click to toggle source
# File lib/canvas_cc/canvas_cc/file_meta_writer.rb, line 22 def write_folders(xml) xml.folders{ @canvas_folders.each do |folder| xml.folder('path' => folder.folder_location){ xml.hidden folder.hidden unless folder.hidden.nil? xml.locked folder.locked unless folder.locked.nil? } end } end
write_xml() { |xml| ... }
click to toggle source
# File lib/canvas_cc/canvas_cc/file_meta_writer.rb, line 58 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' ){ yield xml } end.to_xml File.open(File.join(@work_dir, CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR, FILE_META_FILE), 'w') { |f| f.write(xml) } end