Class: Hydra::FileCharacterization::ToTempFile

Inherits:
Object
  • Object
show all
Includes:
Open3
Defined in:
lib/hydra/file_characterization/to_temp_file.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ ToTempFile

Returns a new instance of ToTempFile.



14
15
16
# File 'lib/hydra/file_characterization/to_temp_file.rb', line 14

def initialize(filename)
  @filename = filename.is_a?(Array) ? filename.join("") : filename
end

Instance Attribute Details

#filenameObject (readonly)

Returns the value of attribute filename.



12
13
14
# File 'lib/hydra/file_characterization/to_temp_file.rb', line 12

def filename
  @filename
end

Class Method Details

.open(filename, data, &block) ⇒ Object



8
9
10
# File 'lib/hydra/file_characterization/to_temp_file.rb', line 8

def self.open(filename, data, &block)
  new(filename).call(data, &block)
end

Instance Method Details

#call(data) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/hydra/file_characterization/to_temp_file.rb', line 18

def call(data)
  f = Tempfile.new([File.basename(filename),File.extname(filename)])
  begin
    f.binmode
    if data.respond_to? :read
      f.write(data.read)
    else
      f.write(data)
    end
    f.rewind
    yield(f)
  ensure
    data.rewind if data.respond_to? :rewind
    f.close
    f.unlink
  end
end