Sha256: df70f0779df3ffc2440db4450dde3042b6fac4daed967d484fb79535a084727c
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
module FedoraMigrate class DatastreamMover < Mover attr_accessor :versionable def post_initialize raise FedoraMigrate::Errors::MigrationError, "You must supply a target" if target.nil? end def versionable? versionable.nil? ? target_versionable? : versionable end def target_versionable? if target.respond_to?(:versionable?) target.versionable? else false end end def migrate before_datastream_migration migrate_datastream after_datastream_migration super end private def migrate_datastream if versionable? migrate_versions else migrate_current end end # Reload the target, otherwise the checksum is nil def migrate_current migrate_content target.reload if report.last.success? end # Rubydora stores the versions array as the most recent first. We explicitly sort them according to createDate 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 def migrate_content datastream=nil datastream ||= source report << FedoraMigrate::ContentMover.new(datastream, target).migrate end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fedora-migrate-0.3.0 | lib/fedora_migrate/datastream_mover.rb |
fedora-migrate-0.2.0 | lib/fedora_migrate/datastream_mover.rb |