Sha256: bc0cfd43d72d1616d1d2b2f5e73b341e80107dbca45079859653023b894cd205

Contents?: true

Size: 1021 Bytes

Versions: 7

Compression:

Stored size: 1021 Bytes

Contents

require "rdf-vocab"

module Ddr
  module Events
    module PreservationEventBehavior
      extend ActiveSupport::Concern

      included do
        class_attribute :preservation_event_type
      end

      def preservation_event_type
        self.class.preservation_event_type
      end

      EVENT_ID_TYPE = "Duke Digital Repository Event ID"
      LINKING_OBJECT_ID_TYPE = "Duke Digital Repository PID"

      def as_premis
        Ddr::Metadata::PremisEvent.new.tap do |doc|
          doc.event_type = RDF::Vocab::PremisEventType.label_for(preservation_event_type)
          doc.event_id_type = EVENT_ID_TYPE
          doc.event_id_value = id
          doc.event_detail = summary
          doc.linking_object_id_type = LINKING_OBJECT_ID_TYPE
          doc.linking_object_id_value = pid
          doc.event_outcome = outcome
          doc.event_outcome_detail_note = detail
          doc.event_date_time = event_date_time_s
        end
      end

      def to_xml
        as_premis.to_xml
      end

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddr-models-1.13.2 lib/ddr/events/preservation_event_behavior.rb
ddr-models-1.13.1 lib/ddr/events/preservation_event_behavior.rb
ddr-models-1.13.0 lib/ddr/events/preservation_event_behavior.rb
ddr-models-1.12.3 lib/ddr/events/preservation_event_behavior.rb
ddr-models-1.12.2 lib/ddr/events/preservation_event_behavior.rb
ddr-models-1.12.1 lib/ddr/events/preservation_event_behavior.rb
ddr-models-1.12.0 lib/ddr/events/preservation_event_behavior.rb