class FedoraMigrate::DatastreamMover
Attributes
versionable[RW]
Public Instance Methods
migrate()
click to toggle source
Calls superclass method
# File lib/fedora_migrate/datastream_mover.rb, line 21 def migrate before_datastream_migration migrate_datastream after_datastream_migration super end
post_initialize()
click to toggle source
# File lib/fedora_migrate/datastream_mover.rb, line 5 def post_initialize raise FedoraMigrate::Errors::MigrationError, "You must supply a target" if target.nil? end
target_versionable?()
click to toggle source
# File lib/fedora_migrate/datastream_mover.rb, line 13 def target_versionable? if target.respond_to?(:versionable?) target.versionable? else false end end
versionable?()
click to toggle source
# File lib/fedora_migrate/datastream_mover.rb, line 9 def versionable? versionable.nil? ? target_versionable? : versionable end
Private Instance Methods
migrate_content(datastream = nil)
click to toggle source
# File lib/fedora_migrate/datastream_mover.rb, line 52 def migrate_content(datastream = nil) datastream ||= source report << FedoraMigrate::ContentMover.new(datastream, target).migrate end
migrate_current()
click to toggle source
Reload the target, otherwise the checksum is nil
# File lib/fedora_migrate/datastream_mover.rb, line 39 def migrate_current migrate_content target.reload if report.last.success? end
migrate_datastream()
click to toggle source
# File lib/fedora_migrate/datastream_mover.rb, line 30 def migrate_datastream if versionable? migrate_versions else migrate_current end end
migrate_versions()
click to toggle source
Rubydora stores the versions array as the most recent first. We explicitly sort them according to createDate
# File lib/fedora_migrate/datastream_mover.rb, line 45 def migrate_versions source.versions.sort { |a, b| a.createDate <=> b.createDate }.each do |version| migrate_content(version) target.create_version if report.last.success? && !application_creates_versions? end end