Sha256: 988844d1c8773e238c20afb4246797456499cff7ee8ce6717e1dddac4aebf5d1

Contents?: true

Size: 888 Bytes

Versions: 4

Compression:

Stored size: 888 Bytes

Contents

module ActiveFedora
  module RDF
    #
    # Mixin for adding datastream persistence to an ActiveTriples::Resource
    # descendant so that it may be used to back an ActiveFedora::RDFDatastream.
    #
    # @see ActiveFedora::RDFDatastream.resource_class
    # @see ActiveFedora::RDF::ObjectResource
    #
    module Persistence
      extend ActiveSupport::Concern

      BASE_URI = 'info:fedora/'.freeze

      included do
        configure base_uri: BASE_URI unless base_uri
        attr_accessor :datastream
      end

      # Overrides ActiveTriples::Resource
      def persist!
        return false unless datastream&.respond_to?(:save)
        @persisted ||= datastream.save
      end

      # Overrides ActiveTriples::Resource
      def persisted?
        return true if frozen? && !datastream.new_record?
        @persisted ||= !datastream.new_record?
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
active-fedora-15.0.1 lib/active_fedora/rdf/persistence.rb
active-fedora-15.0.0 lib/active_fedora/rdf/persistence.rb
active-fedora-14.0.1 lib/active_fedora/rdf/persistence.rb
active-fedora-14.0.0 lib/active_fedora/rdf/persistence.rb