class Scruber::Helpers::ProxyRotator::Configuration
Constants
- AVAILABLE_MODES
Attributes
mode[R]
pickup[R]
proxies[R]
proxy_keys[R]
Public Class Methods
new()
click to toggle source
# File lib/scruber/helpers/proxy_rotator.rb, line 47 def initialize @mode = :round_robin @proxies = {} @proxy_keys = [] @pickup = nil end
Public Instance Methods
add(proxy_address, options={})
click to toggle source
# File lib/scruber/helpers/proxy_rotator.rb, line 63 def add(proxy_address, options={}) proxy = Proxy.new(proxy_address, options) @proxies[proxy.id] = proxy end
clean()
click to toggle source
# File lib/scruber/helpers/proxy_rotator.rb, line 59 def clean @proxies = {} end
configure(&block)
click to toggle source
# File lib/scruber/helpers/proxy_rotator.rb, line 54 def configure(&block) instance_eval &block rebuild_caches end
set_mode(mode)
click to toggle source
# File lib/scruber/helpers/proxy_rotator.rb, line 68 def set_mode(mode) if AVAILABLE_MODES.include?(mode) @mode = mode else raise Scruber::ArgumentError.new("Wrong mode. Available modes: #{AVAILABLE_MODES}") end end
Private Instance Methods
rebuild_caches()
click to toggle source
# File lib/scruber/helpers/proxy_rotator.rb, line 78 def rebuild_caches if @mode == :random @pickup = Pickup.new(@proxies.inject({}){ |acc,(k,p)| acc[p] = p.probability; acc }) else @proxy_keys = @proxies.keys end end