| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | require "forwardable" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  | module Hbc | 
					
						
							|  |  |  |   class URL | 
					
						
							|  |  |  |     FAKE_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10) http://caskroom.io".freeze | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     attr_reader :using, :revision, :trust_cert, :uri, :cookies, :referer, :data | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     extend Forwardable | 
					
						
							|  |  |  |     def_delegators :uri, :path, :scheme, :to_s | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     def self.from(*args, &block) | 
					
						
							|  |  |  |       if block_given? | 
					
						
							|  |  |  |         Hbc::DSL::StanzaProxy.once(self) { new(*block.call) } | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         new(*args) | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     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 | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |     def user_agent | 
					
						
							|  |  |  |       if @user_agent == :fake | 
					
						
							|  |  |  |         FAKE_USER_AGENT | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         @user_agent | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |