Sha256: 51b7311a43a474faddc4f79af0f8737ced1de3f9e096153a02114bc87288e8cd

Contents?: true

Size: 941 Bytes

Versions: 10

Compression:

Stored size: 941 Bytes

Contents

module ActiveFedora
  # This is the base class for ldp containers, it is not an ldp:BasicContainer
  class Container < ActiveFedora::Base

    property :membership_resource, predicate: ::RDF::Vocab::LDP.membershipResource
    property :has_member_relation, predicate: ::RDF::Vocab::LDP.hasMemberRelation
    property :is_member_of_relation, predicate: ::RDF::Vocab::LDP.isMemberOfRelation
    property :contained, predicate: ::RDF::Vocab::LDP.contains

    def parent
      @parent || raise("Parent hasn't been set on #{self.class}")
    end

    def parent=(parent)
      @parent = parent
      self.membership_resource = [::RDF::URI(parent.uri)]
    end

    def mint_id
      "#{id}/#{SecureRandom.uuid}"
    end

    def self.find_or_initialize(id)
      find(id)
    rescue ActiveFedora::ObjectNotFoundError
      new(id)
    end

    private

    # Don't allow directly setting contained
    def contained=(*args)
    end

  end
end


Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
active-fedora-9.5.0 lib/active_fedora/containers/container.rb
active-fedora-9.4.3 lib/active_fedora/containers/container.rb
active-fedora-9.4.2 lib/active_fedora/containers/container.rb
active-fedora-9.4.1 lib/active_fedora/containers/container.rb
active-fedora-9.4.0 lib/active_fedora/containers/container.rb
active-fedora-9.3.0 lib/active_fedora/containers/container.rb
active-fedora-9.2.1 lib/active_fedora/containers/container.rb
active-fedora-9.2.0 lib/active_fedora/containers/container.rb
active-fedora-9.2.0.rc2 lib/active_fedora/containers/container.rb
active-fedora-9.2.0.rc1 lib/active_fedora/containers/container.rb