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 |