46 lines
858 B
Ruby
Raw Normal View History

2016-08-18 22:11:42 +03:00
require "fileutils"
require "hbc/verify"
2016-09-24 13:52:43 +02:00
module Hbc
class Download
attr_reader :cask
def initialize(cask, force: false)
@cask = cask
@force = force
end
def perform
clear_cache
fetch
downloaded_path
end
private
attr_reader :force
attr_accessor :downloaded_path
def downloader
@downloader ||= case cask.url.using
when :svn
SubversionDownloadStrategy.new(cask)
when :post
CurlPostDownloadStrategy.new(cask)
else
CurlDownloadStrategy.new(cask)
end
2016-09-24 13:52:43 +02:00
end
def clear_cache
downloader.clear_cache if force || cask.version.latest?
end
def fetch
self.downloaded_path = downloader.fetch
rescue StandardError => e
raise CaskError, "Download failed on Cask '#{cask}' with message: #{e}"
end
2016-08-18 22:11:42 +03:00
end
end