Class: Ddr::Jobs::FitsFileCharacterization

Inherits:
Object
  • Object
show all
Defined in:
lib/ddr/jobs/fits_file_characterization.rb

Constant Summary collapse

EVENT_SUMMARY =
'FITS characterization of content file'.freeze

Class Method Summary collapse

Class Method Details

.fits_commandObject



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

def self.fits_command
  File.join(Ddr::Models.fits_home, 'fits.sh')
end

.fits_versionObject



29
30
31
# File 'lib/ddr/jobs/fits_file_characterization.rb', line 29

def self.fits_version
  `#{fits_command} -v`.strip
end

.perform(pid) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ddr/jobs/fits_file_characterization.rb', line 10

def self.perform(pid)
  obj = ActiveFedora::Base.find(pid)
  tmp_filename = Ddr::Utils::sanitize_filename(obj.original_filename) || obj.content.default_file_name
  Dir.mktmpdir do |dir|
    infile = create_temp_infile(dir, tmp_filename, obj.content.content)
    fits_output, err, status = Open3.capture3(fits_command, '-i', infile)
    if status.success? && fits_output.present?
      obj.reload
      obj.fits.content = fits_output
      obj.save!
    end
    notify_event(pid, err, status)
  end
end