Sha256: a6a011df9525406daac79fb3a22841658071e47fc02b18d289028bfed70e1a16
Contents?: true
Size: 957 Bytes
Versions: 3
Compression:
Stored size: 957 Bytes
Contents
# frozen_string_literal: true require "tmpdir" module ActiveStorage module Downloading private # Opens a new tempfile in #tempdir and copies blob data into it. Yields the tempfile. def download_blob_to_tempfile #:doc: open_tempfile_for_blob do |file| download_blob_to file yield file end end def open_tempfile_for_blob tempfile = Tempfile.open([ "ActiveStorage", blob.filename.extension_with_delimiter ], tempdir) begin yield tempfile ensure tempfile.close! end end # Efficiently downloads blob data into the given file. def download_blob_to(file) #:doc: file.binmode blob.download { |chunk| file.write(chunk) } file.rewind end # Returns the directory in which tempfiles should be opened. Defaults to +Dir.tmpdir+. def tempdir #:doc: Dir.tmpdir end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
activestorage-5.2.0 | lib/active_storage/downloading.rb |
activestorage-5.2.0.rc2 | lib/active_storage/downloading.rb |
activestorage-5.2.0.rc1 | lib/active_storage/downloading.rb |