module ActiveFedora::File::Attributes
def assign_attributes(_)
def assign_attributes(_) # nop end
def create_date
def create_date created = metadata.attributes["http://fedora.info/definitions/v4/repository#created"] created&.first end
def default_mime_type
def default_mime_type 'text/plain' end
def digest
def digest response = metadata.ldp_source.graph.query({ predicate: RDF::Vocab::PREMIS.hasMessageDigest }) # fallback on old predicate for checksum response = metadata.ldp_source.graph.query({ predicate: fallback_digest_predicate }) if response.empty? response.map(&:object) end
def dirty_size
def dirty_size content.size if content_changed? && content.respond_to?(:size) end
def empty?
def empty? !has_content? end
def fallback_digest_predicate
http://fedora.info/definitions/v4/2015/07/24/repository and
from the 2015-07-24 version of the fedora 4 ontology
Fcrepo4.digest was used by Fedora < 4.3, but it was removed
def fallback_digest_predicate @fallback_digest ||= if RDF::Vocab::Fcrepo4.respond_to? :digest RDF::Vocab::Fcrepo4.digest else ::RDF::URI("http://fedora.info/definitions/v4/repository#digest") end end
def fetch_mime_type
def fetch_mime_type return default_mime_type if new_record? && metadata.mime_type.blank? metadata.mime_type.first end
def fetch_original_name
def fetch_original_name return if new_record? ldp_source.head.content_disposition_filename end
def has_content?
def has_content? size&.positive? end
def links
def links @links ||= ldp_source.head.links end
def mime_type
def mime_type fetch_mime_type end
def modified_date
def modified_date modified = metadata.attributes["http://fedora.info/definitions/v4/repository#lastModified"] modified&.first end
def original_name
def original_name @original_name ||= fetch_original_name end
def original_name=(name)
def original_name=(name) @original_name = name end
def persisted_size
def persisted_size ldp_source.head.content_length unless new_record? end
def size
def size dirty_size || persisted_size end