33 lines
		
	
	
		
			622 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			622 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| module Hbc
 | |
|   module Source
 | |
|     class 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 CaskUnavailableError, uri
 | |
|         end
 | |
|         PathSlashOptional.new(path).load
 | |
|       end
 | |
| 
 | |
|       def to_s
 | |
|         uri.to_s
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
