37 lines
		
	
	
		
			949 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			949 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "forwardable"
 | |
| 
 | |
| module Hbc
 | |
|   class URL
 | |
|     FAKE_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10) https://caskroom.github.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
 | |
|       return FAKE_USER_AGENT if @user_agent == :fake
 | |
|       @user_agent
 | |
|     end
 | |
|   end
 | |
| end
 | 
