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
- .config ⇒ Object
-
.pull_tempfile(original_filename:, url:) ⇒ Object
Creates Temporary file.
-
.puller ⇒ Object
To use differnt puller you can do.
- .transaction(original_filename:, url:) ⇒ Object
Class Method Details
.config ⇒ Object
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 |
.puller ⇒ Object
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 |