Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dchandekstark/11cee83d7f94b12e46a6 to your computer and use it in GitHub Desktop.
Save dchandekstark/11cee83d7f94b12e46a6 to your computer and use it in GitHub Desktop.
Add Duke terms to descMetadata
ActiveFedora::Base.find_each({}, {cast: true}) do |obj|
unless obj.datastreams["descMetadata"].is_a? DulHydra::Datastreams::DescriptiveMetadataDatastream
puts "SKIPPED #{obj.pid} -- descMetadata is not a DulHydra::Datastreams::DescriptiveMetadataDatastream"
next
end
doc = obj.descMetadata.ng_xml
if doc.namespaces.include? "xmlns:#{DulHydra::Metadata::DukeTerms::NAMESPACE_PREFIX}"
puts "SKIPPED #{obj.pid} -- already has Duke terms namespace"
next
end
doc.root.add_namespace(DulHydra::Metadata::DukeTerms::NAMESPACE_PREFIX,
DulHydra::Metadata::DukeTerms::XMLNS)
obj.descMetadata.content = doc.to_xml
if obj.save
obj.reload
puts "SUCCESS -- #{obj.pid} migrated"
UpdateEvent.create(pid: obj.pid, summary: "Added XML namespace declaration for Duke terms to descMetadata")
else
puts "FAILURE -- #{obj.pid} NOT migrated"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment