Sha256: 320ebba4e4a1224785c3128f8266914dfba3bf56de2bc569269b6bc660dc0315

Contents?: true

Size: 943 Bytes

Versions: 40

Compression:

Stored size: 943 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: id)
    end

    private

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

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
active-fedora-15.0.1 lib/active_fedora/containers/container.rb
active-fedora-15.0.0 lib/active_fedora/containers/container.rb
active-fedora-14.0.1 lib/active_fedora/containers/container.rb
active-fedora-14.0.0 lib/active_fedora/containers/container.rb
active-fedora-13.3.0 lib/active_fedora/containers/container.rb
active-fedora-12.2.4 lib/active_fedora/containers/container.rb
active-fedora-13.2.7 lib/active_fedora/containers/container.rb
active-fedora-13.2.5 lib/active_fedora/containers/container.rb
active-fedora-13.2.4 lib/active_fedora/containers/container.rb
active-fedora-12.2.3 lib/active_fedora/containers/container.rb
active-fedora-13.2.3 lib/active_fedora/containers/container.rb
active-fedora-13.2.2 lib/active_fedora/containers/container.rb
active-fedora-13.2.0 lib/active_fedora/containers/container.rb
active-fedora-13.1.3 lib/active_fedora/containers/container.rb
active-fedora-11.5.6 lib/active_fedora/containers/container.rb
active-fedora-12.2.2 lib/active_fedora/containers/container.rb
active-fedora-11.2.1 lib/active_fedora/containers/container.rb
active-fedora-12.2.1 lib/active_fedora/containers/container.rb
active-fedora-12.0.3 lib/active_fedora/containers/container.rb
active-fedora-11.5.5 lib/active_fedora/containers/container.rb