38 lines
		
	
	
		
			895 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			895 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "forwardable" | ||
|  | 
 | ||
|  | class Hbc::URL | ||
|  |   FAKE_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10) http://caskroom.io".freeze | ||
|  | 
 | ||
|  |   attr_reader :using, :revision, :trust_cert, :uri, :cookies, :referer, :data | ||
|  | 
 | ||
|  |   extend Forwardable | ||
|  |   def_delegators :uri, :path, :scheme, :to_s | ||
|  | 
 | ||
|  |   def self.from(*args, &block) | ||
|  |     if block_given? | ||
|  |       Hbc::DSL::StanzaProxy.once(self) { new(*block.call) } | ||
|  |     else | ||
|  |       new(*args) | ||
|  |     end | ||
|  |   end | ||
|  | 
 | ||
|  |   def initialize(uri, options = {}) | ||
|  |     @uri        = Hbc::UnderscoreSupportingURI.parse(uri) | ||
|  |     @user_agent = options[:user_agent] | ||
|  |     @cookies    = options[:cookies] | ||
|  |     @referer    = options[:referer] | ||
|  |     @using      = options[:using] | ||
|  |     @revision   = options[:revision] | ||
|  |     @trust_cert = options[:trust_cert] | ||
|  |     @data       = options[:data] | ||
|  |   end | ||
|  | 
 | ||
|  |   def user_agent | ||
|  |     if @user_agent == :fake | ||
|  |       FAKE_USER_AGENT | ||
|  |     else | ||
|  |       @user_agent | ||
|  |     end | ||
|  |   end | ||
|  | end |