Module: Dor::Preservable

Extended by:
ActiveSupport::Concern
Included in:
BasicItem
Defined in:
lib/dor/models/preservable.rb

Instance Method Summary collapse

Instance Method Details

#build_provenanceMetadata_datastream(workflow_id, event_text) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/dor/models/preservable.rb', line 12

def (workflow_id, event_text)
  workflow_provenance = create_workflow_provenance(workflow_id, event_text)
  dsname = 'provenanceMetadata'
  ds = datastreams[dsname]
  ds.label = 'Provenance Metadata' unless datastreams.keys.include?(dsname)
  ds.ng_xml = workflow_provenance
  ds.content = ds.ng_xml.to_s
  ds.save
end

#build_technicalMetadata_datastream(ds = nil) ⇒ Object



22
23
24
# File 'lib/dor/models/preservable.rb', line 22

def (ds = nil)
  TechnicalMetadataService.(self)
end

#create_workflow_provenance(workflow_id, event_text) ⇒ Nokogiri::Document

Returns:

  • (Nokogiri::Document)


31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/dor/models/preservable.rb', line 31

def create_workflow_provenance(workflow_id, event_text)
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.(:objectId => pid) {
      xml.agent(:name => 'DOR') {
        xml.what(:object => pid) {
          xml.event(:who => "DOR-#{workflow_id}", :when => Time.new.iso8601) {
            xml.text(event_text)
          }
        }
      }
    }
  end
  builder.doc
end

#sdr_ingest_transfer(agreement_id) ⇒ Object



26
27
28
# File 'lib/dor/models/preservable.rb', line 26

def sdr_ingest_transfer(agreement_id)
  SdrIngestService.transfer(self, agreement_id)
end