class Ddr::Managers::TechnicalMetadataManager
Constants
- FITS_TIMESTAMP_FORMAT
Public Instance Methods
checksum_digest()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 52 def checksum_digest checksum_uri.split(":")[1].upcase rescue nil end
checksum_value()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 56 def checksum_value checksum_uri.split(":").last rescue nil end
creation_time()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 76 def creation_time created.map { |datestr| coerce_to_time(datestr) }.compact end
file_human_size()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 45 def file_human_size file_size.map do |fs| "%s (%s bytes)" % [ ActiveSupport::NumberHelper.number_to_human_size(fs), ActiveSupport::NumberHelper.number_to_delimited(fs) ] end end
file_size()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 41 def file_size extent.map(&:to_i) end
fits?()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 26 def fits? !fits_version.nil? end
fits_datetime()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 34 def fits_datetime if fits_timestamp = fits.timestamp.first no_zone = DateTime.strptime(fits_timestamp, FITS_TIMESTAMP_FORMAT) no_zone.change(offset: no_zone.to_time.zone) end end
fits_version()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 30 def fits_version fits.version.first end
ill_formed?()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 68 def ill_formed? well_formed.any? { |v| v == "false" } end
index_fields()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 84 def index_fields { Ddr::Index::Fields::TECHMD_FITS_VERSION => fits_version, Ddr::Index::Fields::TECHMD_FITS_DATETIME => Ddr::Utils.solr_date(fits_datetime), Ddr::Index::Fields::TECHMD_CREATION_TIME => Ddr::Utils.solr_dates(creation_time), Ddr::Index::Fields::TECHMD_MODIFICATION_TIME => Ddr::Utils.solr_dates(modification_time), Ddr::Index::Fields::TECHMD_COLOR_SPACE => color_space, Ddr::Index::Fields::TECHMD_CREATING_APPLICATION => creating_application, Ddr::Index::Fields::TECHMD_FILE_SIZE => file_size, Ddr::Index::Fields::TECHMD_FORMAT_LABEL => format_label, Ddr::Index::Fields::TECHMD_FORMAT_VERSION => format_version, Ddr::Index::Fields::TECHMD_IMAGE_HEIGHT => image_height, Ddr::Index::Fields::TECHMD_IMAGE_WIDTH => image_width, Ddr::Index::Fields::TECHMD_MEDIA_TYPE => media_type, Ddr::Index::Fields::TECHMD_PRONOM_IDENTIFIER => pronom_identifier, Ddr::Index::Fields::TECHMD_VALID => valid, Ddr::Index::Fields::TECHMD_WELL_FORMED => well_formed, } end
invalid?()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 60 def invalid? valid.any? { |v| v == "false" } end
modification_time()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 80 def modification_time modified.map { |datestr| coerce_to_time(datestr) }.compact end
valid?()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 64 def valid? !invalid? end
well_formed?()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 72 def well_formed? !ill_formed? end
Private Instance Methods
checksum_uri()
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 112 def checksum_uri content.digest.first.to_s end
coerce_to_time(datestr)
click to toggle source
# File lib/ddr/managers/technical_metadata_manager.rb, line 105 def coerce_to_time(datestr) datestr.sub! /\A(\d+):(\d+):(\d+)/, '\1-\2-\3' DateTime.parse(datestr).to_time rescue ArgumentError nil end