Module: PullTempfile

Defined in:
lib/pull_tempfile.rb,
lib/pull_tempfile/version.rb

Defined Under Namespace

Classes: Config

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.configObject



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

def self.config
  @config ||= Config.new
end

.pull_tempfile(original_filename:, url:) ⇒ Object

Creates Temporary file

file = PullTempfile.pull_tempfile(original_filename: "image asset.jpg", url: 'http://..../uaoeuoeueoauoueao' )
# ...do stuff
file.unlink

Temporary files have suffix so your file “image asset.jpg” will be saved as “/tmp/image asset20160317-18066-gw1q0.jpg”. This is because Tempfile lib is ensuring you won’t override files

Remmember to ‘file.unlink` or PullTempfile.transaction that does that automatically



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/pull_tempfile.rb', line 42

def self.pull_tempfile(original_filename:, url:)
  _generated_name = Pathname.new(original_filename)
  extension     = _generated_name.extname.to_s
  tmp_file_name = _generated_name.basename(extension).to_s

  file = Tempfile.new([tmp_file_name, extension])
  file.binmode
  file.write(puller.call(url))
  file.close
  file
end

.pullerObject

To use differnt puller you can do

require 'httparty'
PullTempfile.config.puller = ->(url){ HTTParty.get(url).parsed_response }


26
27
28
# File 'lib/pull_tempfile.rb', line 26

def self.puller
  config.puller
end

.transaction(original_filename:, url:) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/pull_tempfile.rb', line 54

def self.transaction(original_filename:, url:)
  file = pull_tempfile(original_filename: original_filename, url: url)

  yield file.open
ensure
  file && file.unlink #delete temp file
end