Sha256: ea6fad617806d1eebad1873b37f6e6358c59df2346c03eaee0023d27fb1b6e4d

Contents?: true

Size: 953 Bytes

Versions: 17

Compression:

Stored size: 953 Bytes

Contents

# frozen_string_literal: true
require 'shellwords'

require 'proxy_rb/credentials'
require 'proxy_rb/proxy_url_parser'

# ProxyRb
module ProxyRb
  # Represent proxy
  class HttpProxy
    attr_reader :url, :credentials

    def initialize(parser)
      @url         = parser.proxy_url
      @credentials = parser.credentials
    end

    def host
      url.host
    end

    def port
      url.port
    end

    def user
      credentials.user_name
    end

    def password
      credentials.password
    end

    def empty?
      host.nil? || host.empty?
    end

    # Convert to symbol to reference the proxy
    #
    # @return [Symbol]
    #   <host>_<port>_<credentials>
    def to_ref
      Shellwords.escape(*[host, port, user].compact.join('_')).to_sym
    end

    # Return proxy as full url
    #
    # @return [ProxyUrl]
    #   The proxy as url
    def full_url
      ProxyUrl.build url.to_hash.merge(credentials.to_hash)
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
proxy_rb-0.10.4 lib/proxy_rb/http_proxy.rb
proxy_rb-0.10.3 lib/proxy_rb/http_proxy.rb
proxy_rb-0.10.2 lib/proxy_rb/http_proxy.rb
proxy_rb-0.10.1 lib/proxy_rb/http_proxy.rb
proxy_rb-0.10.0 lib/proxy_rb/http_proxy.rb
proxy_rb-0.9.3 lib/proxy_rb/http_proxy.rb
proxy_rb-0.9.2 lib/proxy_rb/http_proxy.rb
proxy_rb-0.9.1 lib/proxy_rb/http_proxy.rb
proxy_rb-0.9.0 lib/proxy_rb/http_proxy.rb
proxy_rb-0.8.3 lib/proxy_rb/http_proxy.rb
proxy_rb-0.8.2 lib/proxy_rb/http_proxy.rb
proxy_rb-0.8.1 lib/proxy_rb/http_proxy.rb
proxy_rb-0.8.0 lib/proxy_rb/http_proxy.rb
proxy_rb-0.7.1 lib/proxy_rb/http_proxy.rb
proxy_rb-0.7.0 lib/proxy_rb/http_proxy.rb
proxy_rb-0.6.0 lib/proxy_rb/http_proxy.rb
proxy_rb-0.5.0 lib/proxy_rb/http_proxy.rb