class FedoraMigrate::ObjectMover
Constants
- ContentDatastreamReport
- RDFDatastreamReport
- RIGHTS_DATASTREAM
- Report
Public Instance Methods
complete_target()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 35 def complete_target after_object_migration save end
migrate()
click to toggle source
Calls superclass method
FedoraMigrate::Mover#migrate
# File lib/fedora_migrate/object_mover.rb, line 9 def migrate prepare_target conversions.collect { |ds| convert_rdf_datastream(ds) } migrate_datastreams complete_target super end
post_initialize()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 17 def post_initialize conversion_options create_target_model if target.nil? end
prepare_target()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 29 def prepare_target report.class = target.class.to_s report.id = target.id before_object_migration end
results_report()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 22 def results_report Report.new.tap do |report| report.content_datastreams = [] report.rdf_datastreams = [] end end
target()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 40 def target @target ||= FedoraMigrate::TargetConstructor.new(source).build end
Private Instance Methods
convert_rdf_datastream(ds)
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 63 def convert_rdf_datastream(ds) return unless source.datastreams.key?(ds) mover = FedoraMigrate::RDFDatastreamMover.new(datastream_content(ds), target) report.rdf_datastreams << RDFDatastreamReport.new(ds, mover.migrate) end
datastream_content(dsid)
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 69 def datastream_content(dsid) source.datastreams[dsid.to_s] end
migrate_content_datastreams()
click to toggle source
We have to call save before migrating content datastreams, otherwise versions aren't recorded TODO: this will fail if required fields are defined in a descMetadata datastream that is not converted to RDF (issue #8)
# File lib/fedora_migrate/object_mover.rb, line 55 def migrate_content_datastreams save target.attached_files.keys.each do |ds| mover = FedoraMigrate::DatastreamMover.new(source.datastreams[ds.to_s], target.attached_files[ds.to_s], options) report.content_datastreams << ContentDatastreamReport.new(ds, mover.migrate) end end
migrate_datastreams()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 46 def migrate_datastreams migrate_content_datastreams migrate_permissions migrate_dates end
migrate_dates()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 79 def migrate_dates report.dates = FedoraMigrate::DatesMover.new(source, target).migrate end
migrate_permissions()
click to toggle source
# File lib/fedora_migrate/object_mover.rb, line 73 def migrate_permissions return unless source.datastreams.keys.include?(RIGHTS_DATASTREAM) && target.respond_to?(:permissions) mover = FedoraMigrate::PermissionsMover.new(source.datastreams[RIGHTS_DATASTREAM], target) report.permissions = mover.migrate end