Class: Ddr::Managers::TechnicalMetadataManager

Inherits:
Manager
  • Object
show all
Defined in:
lib/ddr/managers/technical_metadata_manager.rb

Constant Summary collapse

FITS_TIMESTAMP_FORMAT =

Ex. 7/3/15 8:29 PM

"%D %l:%M %p"

Instance Attribute Summary

Attributes inherited from Manager

#object

Instance Method Summary collapse

Methods inherited from Manager

#initialize

Constructor Details

This class inherits a constructor from Ddr::Managers::Manager

Instance Method Details

#checksum_digestObject



43
44
45
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 43

def checksum_digest
  content.checksumType
end

#checksum_valueObject



47
48
49
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 47

def checksum_value
  content.checksum
end

#creation_timeObject



67
68
69
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 67

def creation_time
  created.map { |datestr| coerce_to_time(datestr) }.compact
end

#file_human_sizeObject



36
37
38
39
40
41
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 36

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_sizeObject



32
33
34
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 32

def file_size
  extent.map(&:to_i)
end

#fits?Boolean



17
18
19
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 17

def fits?
  !fits_version.nil?
end

#fits_datetimeObject



25
26
27
28
29
30
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 25

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_versionObject



21
22
23
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 21

def fits_version
  fits.version.first
end

#ill_formed?Boolean



59
60
61
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 59

def ill_formed?
  well_formed.any? { |v| v == "false" }
end

#index_fieldsObject



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 75

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_ICC_PROFILE_NAME  => icc_profile_name,
    Ddr::Index::Fields::TECHMD_ICC_PROFILE_VERSION => icc_profile_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?Boolean



51
52
53
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 51

def invalid?
  valid.any? { |v| v == "false" }
end

#modification_timeObject



71
72
73
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 71

def modification_time
  modified.map { |datestr| coerce_to_time(datestr) }.compact
end

#valid?Boolean



55
56
57
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 55

def valid?
  !invalid?
end

#well_formed?Boolean



63
64
65
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 63

def well_formed?
  !ill_formed?
end