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



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

def checksum_digest
  checksum_uri.split(":")[1].upcase rescue nil
end

#checksum_valueObject



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

def checksum_value
  checksum_uri.split(":").last rescue nil
end

#creation_timeObject



76
77
78
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 76

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

#file_human_sizeObject



45
46
47
48
49
50
# 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_sizeObject



41
42
43
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 41

def file_size
  extent.map(&:to_i)
end

#fits?Boolean

Returns:

  • (Boolean)


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

def fits?
  !fits_version.nil?
end

#fits_datetimeObject



34
35
36
37
38
39
# 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_versionObject



30
31
32
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 30

def fits_version
  fits.version.first
end

#ill_formed?Boolean

Returns:

  • (Boolean)


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

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

#index_fieldsObject



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# 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?Boolean

Returns:

  • (Boolean)


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

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

#modification_timeObject



80
81
82
# File 'lib/ddr/managers/technical_metadata_manager.rb', line 80

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

#valid?Boolean

Returns:

  • (Boolean)


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

def valid?
  !invalid?
end

#well_formed?Boolean

Returns:

  • (Boolean)


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

def well_formed?
  !ill_formed?
end