class Moodle2CC::Moodle::Backup
Attributes
backup_path[RW]
files[RW]
Public Class Methods
read(backup_path)
click to toggle source
# File lib/moodle2cc/moodle/backup.rb, line 13 def self.read(backup_path) xml = nil files = nil if File.directory?(backup_path) xml = File.read(File.join(backup_path, "moodle.xml")) files = Dir["#{backup_path}/**/*"].reject { |e| File.directory?(e) }. map { |e| e.sub("#{backup_path}/", '') }.select { |e| e =~ /^course_files/ }. map { |e| e.sub('course_files/', '') }.sort else Zip::File.open(backup_path) do |zipfile| xml = zipfile.read("moodle.xml") files = zipfile.entries.select { |e| e.name =~ /^course_files/ && !e.directory? }. map { |e| e.name.sub('course_files/', '') }.sort end end backup = parse(xml) backup.backup_path = backup_path backup.files = files backup end
Public Instance Methods
copy_files_to(dir)
click to toggle source
# File lib/moodle2cc/moodle/backup.rb, line 34 def copy_files_to(dir) if File.directory?(@backup_path) @files.each do |file| destination_file = File.join(dir, file) FileUtils.mkdir_p(File.dirname(destination_file)) File.open(destination_file, 'wb') do |f| f.write File.read(File.join(@backup_path, "course_files/#{file}")) end end else Zip::File.open(@backup_path) do |zipfile| @files.each do |file| destination_file = File.join(dir, file) FileUtils.mkdir_p(File.dirname(destination_file)) File.open(destination_file, 'wb') do |f| f.write zipfile.read("course_files/#{file}") end end end end end