Class: HTTPX::Plugins::Proxy::Parameters

Inherits:
Object
  • Object
show all
Defined in:
lib/httpx/plugins/proxy.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri:, scheme: nil, username: nil, password: nil, **extra) ⇒ Parameters

Returns a new instance of Parameters.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/httpx/plugins/proxy.rb', line 36

def initialize(uri:, scheme: nil, username: nil, password: nil, **extra)
  @uri = uri.is_a?(URI::Generic) ? uri : URI(uri)
  @username = username || @uri.user
  @password = password || @uri.password

  return unless @username && @password

  scheme ||= case @uri.scheme
             when "socks5"
               @uri.scheme
             when "http", "https"
               "basic"
             else
               return
  end

  @scheme = scheme

  auth_scheme = scheme.to_s.capitalize

  require_relative "auth/#{scheme}" unless defined?(Authentication) && Authentication.const_defined?(auth_scheme, false)

  @authenticator = Authentication.const_get(auth_scheme).new(@username, @password, **extra)
end

Instance Attribute Details

#passwordObject (readonly)

Returns the value of attribute password.



34
35
36
# File 'lib/httpx/plugins/proxy.rb', line 34

def password
  @password
end

#schemeObject (readonly)

Returns the value of attribute scheme.



34
35
36
# File 'lib/httpx/plugins/proxy.rb', line 34

def scheme
  @scheme
end

#uriObject (readonly)

Returns the value of attribute uri.



34
35
36
# File 'lib/httpx/plugins/proxy.rb', line 34

def uri
  @uri
end

#usernameObject (readonly)

Returns the value of attribute username.



34
35
36
# File 'lib/httpx/plugins/proxy.rb', line 34

def username
  @username
end

Instance Method Details

#==(other) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/httpx/plugins/proxy.rb', line 73

def ==(other)
  case other
  when Parameters
    @uri == other.uri &&
      @username == other.username &&
      @password == other.password &&
      @scheme == other.scheme
  when URI::Generic, String
    proxy_uri = @uri.dup
    proxy_uri.user = @username
    proxy_uri.password = @password
    other_uri = other.is_a?(URI::Generic) ? other : URI.parse(other)
    proxy_uri == other_uri
  else
    super
  end
end

#authenticate(*args) ⇒ Object



67
68
69
70
71
# File 'lib/httpx/plugins/proxy.rb', line 67

def authenticate(*args)
  return unless @authenticator

  @authenticator.authenticate(*args)
end

#can_authenticate?(*args) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
64
65
# File 'lib/httpx/plugins/proxy.rb', line 61

def can_authenticate?(*args)
  return false unless @authenticator

  @authenticator.can_authenticate?(*args)
end