Sha256: 24b942ba086337d9cfe99cc3b65a332f76e2a65fc5c22b3f3a8af7f251ab4f36

Contents?: true

Size: 1.44 KB

Versions: 20

Compression:

Stored size: 1.44 KB

Contents

module ActiveFedora
  class Base

    def can_have_attachments?
      has_association? :attachments
    end

    def has_attachments?
      can_have_attachments? && attachments.size > 0
    end

    def can_have_children?
      has_association? :children
    end

    def has_children?
      can_have_children? and children.size > 0
    end

    def can_have_content?
      datastreams.include? "content"
    end
    
    def has_content?
      can_have_content? && content.has_content?
    end

    def has_content_metadata?
      self.is_a?(DulHydra::HasContentMetadata) && self.datastreams[Ddr::Datastreams::CONTENT_METADATA].has_content?
    end

    def describable?
      self.is_a? Ddr::Models::Describable
    end

    def governable?
      has_association? :admin_policy
    end

    def has_admin_policy?
      governable? && admin_policy.present?
    end

    def has_rights_metadata?
      ds = self.datastreams[Ddr::Datastreams::RIGHTS_METADATA]
      ds && ds.size && ds.size > 0
    end
    
    def can_have_thumbnail?
      datastreams.include? "thumbnail"
    end

    def has_thumbnail?
      can_have_thumbnail? && thumbnail.has_content?
    end

    def safe_id
      id.sub(/:/, "-")
    end

    # For duck-typing with SolrDocument
    def active_fedora_model
      self.class.to_s
    end

    def controller_name
      active_fedora_model.tableize
    end

    protected

    def has_association? assoc
      !association(assoc).nil?
    end

  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
ddr-models-1.11.8 config/initializers/active_fedora_base.rb
ddr-models-1.11.7 config/initializers/active_fedora_base.rb
ddr-models-1.11.6 config/initializers/active_fedora_base.rb
ddr-models-1.11.5 config/initializers/active_fedora_base.rb
ddr-models-1.11.4 config/initializers/active_fedora_base.rb
ddr-models-1.11.3 config/initializers/active_fedora_base.rb
ddr-models-1.11.2 config/initializers/active_fedora_base.rb
ddr-models-1.11.1 config/initializers/active_fedora_base.rb
ddr-models-1.11.0 config/initializers/active_fedora_base.rb
ddr-models-1.10.0 config/initializers/active_fedora_base.rb
ddr-models-1.9.0 config/initializers/active_fedora_base.rb
ddr-models-1.8.1 config/initializers/active_fedora_base.rb
ddr-models-1.8.0 config/initializers/active_fedora_base.rb
ddr-models-1.7.0 config/initializers/active_fedora_base.rb
ddr-models-1.6.0 config/initializers/active_fedora_base.rb
ddr-models-1.5.0 config/initializers/active_fedora_base.rb
ddr-models-1.4.0 config/initializers/active_fedora_base.rb
ddr-models-1.3.0 config/initializers/active_fedora_base.rb
ddr-models-1.2.1 config/initializers/active_fedora_base.rb
ddr-models-1.2.0 config/initializers/active_fedora_base.rb