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.



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

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

Instance Attribute Details

#filenameObject (readonly)

Returns the value of attribute filename.



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

def filename
  @filename
end

Class Method Details

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



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

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

Instance Method Details

#call(data) ⇒ Object



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

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