Class: Ddr::Fits

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/ddr/fits.rb

Constant Summary collapse

FITS_XMLNS =
"http://hul.harvard.edu/ois/xml/ns/fits/fits_output".freeze
FITS_SCHEMA =
"http://hul.harvard.edu/ois/xml/xsd/fits/fits_output.xsd".freeze
EXIFTOOL =
"Exiftool"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.xml_templateObject



82
83
84
85
86
87
88
89
# File 'lib/ddr/fits.rb', line 82

def self.xml_template
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.fits("xmlns"=>FITS_XMLNS,
             "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
             "xsi:schemaLocation"=>"http://hul.harvard.edu/ois/xml/ns/fits/fits_output #{FITS_SCHEMA}")
  end
  builder.doc
end

Instance Method Details

#color_spaceObject



58
59
60
# File 'lib/ddr/fits.rb', line 58

def color_space
  root.xpath('fits:metadata/fits:image/fits:colorSpace', fits: FITS_XMLNS).map(&:text)
end

#createdObject



42
43
44
# File 'lib/ddr/fits.rb', line 42

def created
  root.xpath('fits:fileinfo/fits:created', fits: FITS_XMLNS).map(&:text)
end

#creating_applicationObject



46
47
48
# File 'lib/ddr/fits.rb', line 46

def creating_application
  root.xpath('fits:fileinfo/fits:creatingApplicationName', fits: FITS_XMLNS).map(&:text)
end

#extentObject



50
51
52
# File 'lib/ddr/fits.rb', line 50

def extent
  root.xpath('fits:fileinfo/fits:size', fits: FITS_XMLNS).map(&:text)
end

#format_labelObject



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

def format_label
  root.xpath('fits:identification/fits:identity/@format', fits: FITS_XMLNS).map(&:value)
end

#format_versionObject



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

def format_version
  root.xpath('fits:identification/fits:identity/fits:version', fits: FITS_XMLNS).map(&:text)
end

#icc_profile_nameObject



62
63
64
# File 'lib/ddr/fits.rb', line 62

def icc_profile_name
  root.xpath('fits:metadata/fits:image/fits:iccProfileName', fits: FITS_XMLNS).map(&:text)
end

#icc_profile_versionObject



66
67
68
# File 'lib/ddr/fits.rb', line 66

def icc_profile_version
  root.xpath('fits:metadata/fits:image/fits:iccProfileVersion', fits: FITS_XMLNS).map(&:text)
end

#image_heightObject



70
71
72
# File 'lib/ddr/fits.rb', line 70

def image_height
  root.xpath('fits:metadata/fits:image/fits:imageHeight', fits: FITS_XMLNS).map(&:text)
end

#image_widthObject



74
75
76
# File 'lib/ddr/fits.rb', line 74

def image_width
  root.xpath('fits:metadata/fits:image/fits:imageWidth', fits: FITS_XMLNS).map(&:text)
end

#md5Object



54
55
56
# File 'lib/ddr/fits.rb', line 54

def md5
  root.xpath('fits:fileinfo/fits:md5checksum', fits: FITS_XMLNS).map(&:text)
end

#media_typeObject



25
26
27
# File 'lib/ddr/fits.rb', line 25

def media_type
  root.xpath('fits:identification/fits:identity/@mimetype', fits: FITS_XMLNS).map(&:value)
end

#modifiedObject



78
79
80
# File 'lib/ddr/fits.rb', line 78

def modified
  root.xpath("fits:fileinfo/fits:lastmodified[@toolname != '#{EXIFTOOL}']", fits: FITS_XMLNS).map(&:text)
end

#pronom_identifierObject



29
30
31
32
# File 'lib/ddr/fits.rb', line 29

def pronom_identifier
  root.xpath('fits:identification/fits:identity/fits:externalIdentifier[@type = "puid"]', fits: FITS_XMLNS)
      .map(&:text)
end

#timestampObject



13
14
15
# File 'lib/ddr/fits.rb', line 13

def timestamp
  root.xpath('@timestamp').map(&:value)
end

#validObject



34
35
36
# File 'lib/ddr/fits.rb', line 34

def valid
  root.xpath('fits:filestatus/fits:valid', fits: FITS_XMLNS).map(&:text)
end

#versionObject



9
10
11
# File 'lib/ddr/fits.rb', line 9

def version
  root.xpath('@version').map(&:value)
end

#well_formedObject



38
39
40
# File 'lib/ddr/fits.rb', line 38

def well_formed
  root.xpath('fits:filestatus/fits:well-formed', fits: FITS_XMLNS).map(&:text)
end