Sha256: c39b351d4c15a29742a39f0935eec6bc740631c07505bc9f8205b2ee5ee25bbc
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
class HttpClientOptions attr_reader :uri, :method, :host, :port, :proxy attr_reader :headers, :file, :body, :query, :path attr_reader :keepalive, :pass_cookies, :decoding attr_accessor :followed, :redirects def initialize(uri, options, method) @keepalive = options[:keepalive] || false # default to single request per connection @redirects = options[:redirects] ||= 0 # default number of redirects to follow @followed = options[:followed] ||= 0 # keep track of number of followed requests @method = method.to_s.upcase @headers = options[:head] || {} @proxy = options[:proxy] || {} @query = options[:query] @path = options[:path] @file = options[:file] @body = options[:body] @pass_cookies = options.fetch(:pass_cookies, true) # pass cookies between redirects @decoding = options.fetch(:decoding, true) # auto-decode compressed response set_uri(uri) end def follow_redirect?; @followed < @redirects; end def http_proxy?; @proxy && [nil, :http].include?(@proxy[:type]); end def ssl?; @uri.scheme == "https" || @uri.port == 443; end def no_body?; @method == "HEAD"; end def set_uri(uri) uri = uri.kind_of?(Addressable::URI) ? uri : Addressable::URI::parse(uri.to_s) uri.path = '/' if uri.path.empty? uri.path = @path if @path @uri = uri # Make sure the ports are set as Addressable::URI doesn't # set the port if it isn't there if @uri.scheme == "https" @uri.port ||= 443 else @uri.port ||= 80 end if !@proxy.empty? @host = @proxy[:host] @port = @proxy[:port] else @host = @uri.host @port = @uri.port end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
em-http-request-1.0.1 | lib/em-http/http_client_options.rb |