Module: Linecook::Downloader
Constant Summary collapse
- LOCK_WAIT_TIMEOUT =
180
Instance Method Summary collapse
Instance Method Details
#download(url, path) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/linecook-gem/util/downloader.rb', line 12 def download(url, path) FileUtils.mkdir_p(File.dirname(path)) cryptfile = "#{File.basename(path)}-encrypted-#{SecureRandom.hex(4)}" File.open(path, 'w') do |f| = ProgressBar.create(title: File.basename(path), total: nil) IO.copy_stream(open(url, content_length_proc: lambda do|t| .total = t if t && 0 < t end, progress_proc: lambda do|s| .progress = s end), f) end end |
#unzip(source, dest: nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/linecook-gem/util/downloader.rb', line 27 def unzip(source, dest: nil) puts "Extracting #{source}..." dest ||= File.dirname(source) Zip::File.open(source) do |zip_file| zip_file.each do |f| file_path = File.join(dest, f.name) FileUtils.mkdir_p(File.dirname(file_path)) zip_file.extract(f, file_path) end end end |