Class: Proxied::Utilities

Inherits:
Object
  • Object
show all
Defined in:
lib/proxied/utilities.rb

Class Method Summary collapse

Class Method Details

.encode_credential(credential) ⇒ Object



17
18
19
# File 'lib/proxied/utilities.rb', line 17

def encode_credential(credential)
  CGI::escape(credential)
end

.format_proxy_address(host:, port: 80, username: nil, password: nil, include_http: false) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/proxied/utilities.rb', line 5

def format_proxy_address(host:, port: 80, username: nil, password: nil, include_http: false)
  address                   =   "#{host.strip}:#{port}"
  address                   =   "#{format_proxy_credentials(username, password)}@#{address}" if !username.to_s.empty? && !password.to_s.empty?
  address                   =   (include_http && !address.start_with?("http://")) ? "http://#{address}" : address
  
  return address
end

.format_proxy_credentials(username, password) ⇒ Object



13
14
15
# File 'lib/proxied/utilities.rb', line 13

def format_proxy_credentials(username, password)
  return "#{encode_credential(username)}:#{encode_credential(password)}"
end

.proxy_options_for_faraday(host:, port: 80, username: nil, password: nil, auth_mode: :credentials) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/proxied/utilities.rb', line 30

def proxy_options_for_faraday(host:, port: 80, username: nil, password: nil, auth_mode: :credentials)
  proxy_options             =   {}
  username                  =   encode_credential(username)
  password                  =   encode_credential(password)
  
  options                   =   {host: host, port: port, include_http: true}
  options[:username]        =   username if !username.to_s.empty? && auth_mode&.to_sym&.eql?(:basic_auth)
  options[:password]        =   password if !password.to_s.empty? && auth_mode&.to_sym&.eql?(:basic_auth)
  
  proxy_options[:uri]       =   format_proxy_address(options)
  proxy_options[:user]      =   username if !username.to_s.empty? && auth_mode&.to_sym&.eql?(:credentials)
  proxy_options[:password]  =   password if !password.to_s.empty? && auth_mode&.to_sym&.eql?(:credentials)
    
  return proxy_options
end

.socks_proxy_credentials(username: nil, password: nil) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/proxied/utilities.rb', line 21

def socks_proxy_credentials(username: nil, password: nil)
  credentials               =   {}
  
  credentials[:user]        =   username if !username.to_s.empty?
  credentials[:password]    =   password if !password.to_s.empty?

  return credentials
end