2016-09-24 13:52:43 +02:00
|
|
|
module Hbc
|
|
|
|
class URL
|
2017-08-07 14:31:56 -07:00
|
|
|
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
|
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)
|
2017-08-07 14:31:56 -07:00
|
|
|
@user_agent = options[:user_agent]
|
2016-09-24 13:52:43 +02:00
|
|
|
@cookies = options[:cookies]
|
|
|
|
@referer = options[:referer]
|
|
|
|
@using = options[:using]
|
|
|
|
@revision = options[:revision]
|
|
|
|
@trust_cert = options[:trust_cert]
|
|
|
|
@data = options[:data]
|
|
|
|
end
|
2017-08-07 14:31:56 -07:00
|
|
|
|
|
|
|
def user_agent
|
|
|
|
return FAKE_USER_AGENT if @user_agent == :fake
|
|
|
|
@user_agent
|
|
|
|
end
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
end
|