Module: HttpUtilities::Http::ProxySupport
- Included in:
- Mechanize::Client, Request
- Defined in:
- lib/http_utilities/http/proxy_support.rb
Instance Method Summary collapse
- #generate_proxy_options ⇒ Object
- #proxy_model_defined? ⇒ Boolean
- #set_proxy_credentials(proxy_username, proxy_password, proxy_credentials) ⇒ Object
- #set_proxy_options(options = {}) ⇒ Object
Instance Method Details
#generate_proxy_options ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/http_utilities/http/proxy_support.rb', line 81 def = {} if self.proxy && !self.proxy[:host].to_s.empty? && !self.proxy[:port].to_s.empty? [:uri] = "http://#{self.proxy[:host]}:#{self.proxy[:port]}" [:user] = self.proxy[:username] if !self.proxy[:username].to_s.empty? [:password] = self.proxy[:password] if !self.proxy[:password].to_s.empty? end return end |
#proxy_model_defined? ⇒ Boolean
74 75 76 77 78 79 |
# File 'lib/http_utilities/http/proxy_support.rb', line 74 def proxy_model_defined? defined = Module.const_get("Proxy").is_a?(Class) rescue false defined = (defined && ::Proxy.respond_to?(:get_random_proxy)) return defined end |
#set_proxy_credentials(proxy_username, proxy_password, proxy_credentials) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/http_utilities/http/proxy_support.rb', line 53 def set_proxy_credentials(proxy_username, proxy_password, proxy_credentials) if proxy_username && proxy_password self.proxy[:username] = proxy_username self.proxy[:password] = proxy_password elsif proxy_credentials if proxy_credentials.is_a?(Hash) self.proxy[:username] = proxy_credentials[:username] self.proxy[:password] = proxy_credentials[:password] elsif (proxy_credentials.is_a?(String)) parts = proxy_credentials.split(":") if parts && parts.any? && parts.size == 2 self.proxy[:username] = parts.first self.proxy[:password] = parts.second end end end end |
#set_proxy_options(options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/http_utilities/http/proxy_support.rb', line 5 def ( = {}) use_proxy = .fetch(:use_proxy, false) specific_proxy = .fetch(:proxy, nil) proxy_host = .fetch(:proxy_host, nil) proxy_port = .fetch(:proxy_port, nil) proxy_username = .fetch(:proxy_username, nil) proxy_password = .fetch(:proxy_password, nil) proxy_credentials = .fetch(:proxy_credentials, nil) proxy_type = .fetch(:proxy_type, :all) proxy_protocol = .fetch(:proxy_protocol, :all) if use_proxy || specific_proxy self.proxy ||= {} if specific_proxy && specific_proxy.is_a?(String) specific_proxy = specific_proxy.gsub(/^http(s)?:\/\//i, "") parts = specific_proxy.split(":") if parts.size.eql?(2) self.proxy[:host] = parts.first self.proxy[:port] = parts.second.to_i end elsif proxy_host && proxy_port self.proxy[:host] = proxy_host self.proxy[:port] = proxy_port elsif proxy_model_defined? if specific_proxy && specific_proxy.is_a?(::Proxy) proxy_object = specific_proxy else proxy_object = ::Proxy.get_random_proxy(protocol: proxy_protocol, proxy_type: proxy_type) end #log(:info, "[HttpUtilities::Http::ProxySupport] - Randomized Proxy object: #{proxy_object.inspect}") if proxy_object self.proxy[:host] = proxy_object.host self.proxy[:port] = proxy_object.port proxy_username = !proxy_object.username.to_s.empty? ? proxy_object.username : nil proxy_password = !proxy_object.password.to_s.empty? ? proxy_object.password : nil end end set_proxy_credentials(proxy_username, proxy_password, proxy_credentials) end end |