class Proxied::Configuration

Attributes

faraday[RW]
http_test[RW]
job_queue[RW]
log_level[RW]
logger[RW]
maximum_failed_attempts[RW]
minimum_successful_attempts[RW]
proxy_class[RW]
socks_test[RW]

Public Class Methods

new() click to toggle source
# File lib/proxied/configuration.rb, line 10
def initialize
  # The ActiveRecord or Mongoid model that will be used for managing proxies - Must be set otherwise the gem won't work!
  self.proxy_class                  =   nil
  
  # The minimum successful attempts and maximum failed attempts before a proxy shouldn't be considered valid anymore
  self.minimum_successful_attempts  =   1
  self.maximum_failed_attempts      =   10
  
  # The queue that Sidekiq/ActiveJob will use to check proxies
  self.job_queue        =   :proxies
  
  # Log settings - if Rails is available it will log to the Rails log, otherwise just puts
  self.logger           =   defined?(Rails) ? -> (message) { Rails.logger.info(message) } : -> (message) { puts(message) }
  self.log_level        =   :info
  
  # The settings below are for configuring the proxy checker service
  self.faraday          =   {
    adapter:    :net_http,
    user_agent: -> { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15" },
    verbose:    false
  }
  
  self.http_test        =   {
    url:      "https://ipinfo.io/ip",
    evaluate: -> (proxy, response) { !(response&.to_s&.strip&.downcase =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/i).nil? },
    timeout:  30,
  }
  
  self.socks_test       =   {
    hostname: "whois.verisign-grs.com",
    port:     43,
    query:    "=google.com",
    timeout:  30
  }
end

Public Instance Methods

verbose_faraday?() click to toggle source
# File lib/proxied/configuration.rb, line 46
def verbose_faraday?
  self.faraday.fetch(:verbose, false)
end