29 lines
518 B
Ruby
29 lines
518 B
Ruby
class Hbc::Source::URI
|
|
def self.me?(query)
|
|
!(query.to_s =~ URI.regexp).nil?
|
|
end
|
|
|
|
attr_reader :uri
|
|
|
|
def initialize(uri)
|
|
@uri = uri
|
|
end
|
|
|
|
def load
|
|
Hbc.cache.mkpath
|
|
path = Hbc.cache.join(File.basename(uri))
|
|
ohai "Downloading #{uri}"
|
|
odebug "Download target -> #{path}"
|
|
begin
|
|
curl(uri, "-o", path.to_s)
|
|
rescue ErrorDuringExecution
|
|
raise Hbc::CaskUnavailableError, uri
|
|
end
|
|
Hbc::Source::PathSlashOptional.new(path).load
|
|
end
|
|
|
|
def to_s
|
|
uri.to_s
|
|
end
|
|
end
|