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: nil, scheme: nil, username: nil, password: nil, no_proxy: nil, **extra) ⇒ 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
60
61
62
# File 'lib/httpx/plugins/proxy.rb', line 36

def initialize(uri: nil, scheme: nil, username: nil, password: nil, no_proxy: nil, **extra)
  @no_proxy = Array(no_proxy) if no_proxy
  @uris = Array(uri)
  uri = @uris.first

  @username = username
  @password = password

  @ns = 0

  if uri
    @uri = uri.is_a?(URI::Generic) ? uri : URI(uri)
    @username ||= @uri.user
    @password ||= @uri.password
  end

  @scheme = scheme

  return unless @uri && @username && @password

  @authenticator = nil
  @scheme ||= infer_default_auth_scheme(@uri)

  return unless @scheme

  @authenticator = load_authenticator(@scheme, @username, @password, **extra)
end

Instance Attribute Details

#no_proxyObject (readonly)

Returns the value of attribute no_proxy.



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

def no_proxy
  @no_proxy
end

#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



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/httpx/plugins/proxy.rb', line 95

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



89
90
91
92
93
# File 'lib/httpx/plugins/proxy.rb', line 89

def authenticate(*args)
  return unless @authenticator

  @authenticator.authenticate(*args)
end

#can_authenticate?(*args) ⇒ Boolean



83
84
85
86
87
# File 'lib/httpx/plugins/proxy.rb', line 83

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

  @authenticator.can_authenticate?(*args)
end

#shiftObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/httpx/plugins/proxy.rb', line 64

def shift
  # TODO: this operation must be synchronized
  @ns += 1
  @uri = @uris[@ns]

  return unless @uri

  @uri = URI(@uri) unless @uri.is_a?(URI::Generic)

  scheme = infer_default_auth_scheme(@uri)

  return unless scheme != @scheme

  @scheme = scheme
  @username = username || @uri.user
  @password = password || @uri.password
  @authenticator = load_authenticator(scheme, @username, @password)
end