class Moodle2CC::Migrator
Constants
- MOODLE_1_9
- MOODLE_2
Attributes
last_error[RW]
Public Class Methods
new(source, destination, options={})
click to toggle source
# File lib/moodle2cc/migrator.rb, line 11 def initialize(source, destination, options={}) @source = source @destination = destination @format = options['format'] || 'cc' Moodle2CC::Logger.logger = options['logger'] || ::Logger.new(STDOUT) raise(Moodle2CC::Error, "'#{@source}' does not exist") unless File.exists?(@source) raise(Moodle2CC::Error, "'#{@destination}' is not a directory") unless File.directory?(@destination) raise(Moodle2CC::Error, "'#{@format}' is not a valid format. Please use 'cc' or 'canvas'.") unless ['cc', 'canvas'].include?(@format) @converter_class = @format == 'cc' ? Moodle2CC::CC::Converter : Moodle2CC::Canvas::Converter end
Public Instance Methods
imscc_path()
click to toggle source
# File lib/moodle2cc/migrator.rb, line 35 def imscc_path @converter.imscc_path end
migrate()
click to toggle source
# File lib/moodle2cc/migrator.rb, line 22 def migrate @last_error = nil case moodle_version when MOODLE_1_9 migrate_moodle_1_9 when MOODLE_2 migrate_moodle_2 end rescue StandardError => error @last_error = error Moodle2CC::Logger.add_warning 'error migrating content', error end
migrate_moodle_1_9()
click to toggle source
# File lib/moodle2cc/migrator.rb, line 39 def migrate_moodle_1_9 backup = Moodle2CC::Moodle::Backup.read @source @converter = @converter_class.new backup, @destination @converter.convert end
migrate_moodle_2()
click to toggle source
# File lib/moodle2cc/migrator.rb, line 45 def migrate_moodle_2 @converter = Moodle2CC::Moodle2Converter::Migrator.new(@source, @destination) @converter.migrate end
Private Instance Methods
moodle_version()
click to toggle source
# File lib/moodle2cc/migrator.rb, line 52 def moodle_version if File.directory?(@source) if File.exists?(File.join(@source, 'moodle_backup.xml')) MOODLE_2 elsif File.exists?(File.join(@source, 'moodle.xml')) MOODLE_1_9 end else Zip::File.open(@source) do |zipfile| if zipfile.find_entry('moodle_backup.xml') MOODLE_2 elsif zipfile.find_entry('moodle.xml') MOODLE_1_9 end end end end