class VagrantVbguest::Download
Attributes
destination[R]
downloader[R]
source[R]
Public Class Methods
new(source, destination, options=nil)
click to toggle source
# File lib/vagrant-vbguest/download.rb, line 5 def initialize(source, destination, options=nil) @downloader = nil @source = source @destination = destination if File.directory?(destination) @destination = File.join(destination, "vbguest_download_#{Time.now.to_i.to_s}") end @ui = options[:ui] end
Public Instance Methods
cleanup()
click to toggle source
# File lib/vagrant-vbguest/download.rb, line 23 def cleanup if destination && File.exist?(destination) @ui.info I18n.t("vagrant_vbguest.download.cleaning") # Unlinking the downloaded file might crash on Windows # see: https://github.com/dotless-de/vagrant-vbguest/issues/189 begin # Even if delete failed on Windows, we still can clean this file to save disk space File.open(destination,'wb') do |f| f.write('') f.close() end File.unlink(destination) rescue Errno::EACCES => e @ui.warn I18n.t("vagrant_vbguest.download.cleaning_failed", message: e.message, destination: destination) end end end
download!()
click to toggle source
# File lib/vagrant-vbguest/download.rb, line 15 def download! downloader_options = {} downloader_options[:ui] = @ui @ui.info(I18n.t("vagrant_vbguest.download.started", :source => @source)) @downloader = Vagrant::Util::Downloader.new(@source, @destination, downloader_options) @downloader.download! end