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