blob: 43ccfb97e14f62a561cb25318d173fb6d5d39f14 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
require "fileutils"
require "hbc/verify"
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
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
end
end
|