class Hydra::FileCharacterization::ToTempFile

Attributes

filename[R]

Public Class Methods

new(filename) click to toggle source
# File lib/hydra/file_characterization/to_temp_file.rb, line 15
def initialize(filename)
  @filename = filename.is_a?(Array) ? filename.join("") : filename
end
open(filename, data, &block) click to toggle source
# File lib/hydra/file_characterization/to_temp_file.rb, line 9
def self.open(filename, data, &block)
  new(filename).call(data, &block)
end

Public Instance Methods

call(data) { |f| ... } click to toggle source
# 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