class Ddr::Models::File
Constants
- CONTENT
- DEFAULT_FILE_EXTENSION
- EXTRACTED_TEXT
- FITS
- STRFTIME_FORMAT
- STRUCT_METADATA
- THUMBNAIL
Public Class Methods
const_missing(name)
click to toggle source
# File lib/ddr/models/file.rb, line 16 def self.const_missing(name) case name when :DESC_METADATA Deprecation.warn(self, "Ddr::File::DESC_METADATA is deprecated." \ " Use Ddr::Models::Metadata::DESC_METADATA instead.") Ddr::Models::Metadata::DESC_METADATA end end
Public Instance Methods
content_digest(algorithm)
click to toggle source
# File lib/ddr/models/file.rb, line 58 def content_digest(algorithm) Ddr::Utils.digest(content, algorithm) end
create_date_string()
click to toggle source
# File lib/ddr/models/file.rb, line 54 def create_date_string create_date.strftime(STRFTIME_FORMAT) if create_date end
default_file_extension()
click to toggle source
Return default file extension for file based on MIME type
# File lib/ddr/models/file.rb, line 63 def default_file_extension mimetypes = MIME::Types[mime_type] return mimetypes.first.extensions.first unless mimetypes.empty? case mime_type when 'application/n-triples' 'txt' else DEFAULT_FILE_EXTENSION end end
default_file_name()
click to toggle source
Return default file name
# File lib/ddr/models/file.rb, line 79 def default_file_name [ default_file_prefix, default_file_extension ].join(".") end
default_file_prefix()
click to toggle source
# File lib/ddr/models/file.rb, line 74 def default_file_prefix (id && id.gsub(/\//, "_")) || "NEW" end
dsCreateDate()
click to toggle source
# File lib/ddr/models/file.rb, line 32 def dsCreateDate Deprecation.warn(File, "`dsCreateDate` is no longer a file method. Use `create_date` instead.") create_date end
dsid()
click to toggle source
# File lib/ddr/models/file.rb, line 25 def dsid Deprecation.warn(File, "`dsid` is no longer a file method. Use `::File.basename(id)`.") if id ::File.basename(id) end end
tempfile(prefix: nil, suffix: nil) { |f| ... }
click to toggle source
# File lib/ddr/models/file.rb, line 83 def tempfile(prefix: nil, suffix: nil) if empty? raise Error, "Refusing to create tempfile for empty file!" end prefix ||= default_file_prefix + "--" suffix ||= "." + default_file_extension Tempfile.open [prefix, suffix], encoding: Encoding::ASCII_8BIT do |f| f.write(content) f.close yield f end end
validate_checksum!(checksum_value, checksum_type=nil)
click to toggle source
# File lib/ddr/models/file.rb, line 37 def validate_checksum!(checksum_value, checksum_type=nil) raise Error, "Checksum cannot be validated on new file." if new_record? raise Error, "Checksum cannot be validated on unpersisted content." if content_changed? raise ChecksumInvalid, "The repository internal checksum validation failed." unless check_fixity algorithm = checksum_type || checksum.algorithm calculated_checksum = if algorithm == checksum.algorithm checksum.value else content_digest(algorithm) end if checksum_value == calculated_checksum "The checksum #{algorithm}:#{checksum_value} is valid for file #{::File.basename(id)}." else raise ChecksumInvalid, "The checksum #{algorithm}:#{checksum_value} is not valid for file #{::File.basename(id)}." end end