Class: Scruber::Helpers::ProxyRotator

Inherits:
Object
  • Object
show all
Defined in:
lib/scruber/helpers/proxy_rotator.rb

Defined Under Namespace

Classes: Configuration, Proxy

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



91
92
93
# File 'lib/scruber/helpers/proxy_rotator.rb', line 91

def configuration
  @configuration ||= Configuration.new
end

.cursorObject

Returns the value of attribute cursor.



89
90
91
# File 'lib/scruber/helpers/proxy_rotator.rb', line 89

def cursor
  @cursor
end

Class Method Details

.configure(&block) ⇒ Object



95
96
97
# File 'lib/scruber/helpers/proxy_rotator.rb', line 95

def configure(&block)
  configuration.configure(&block)
end

.configured?Boolean

Returns:

  • (Boolean)


119
120
121
# File 'lib/scruber/helpers/proxy_rotator.rb', line 119

def configured?
  !@configuration.nil? && !@configuration.proxies.blank?
end

.find(id) ⇒ Object



115
116
117
# File 'lib/scruber/helpers/proxy_rotator.rb', line 115

def find(id)
  @configuration.proxies[id] rescue nil
end

.next(options = {}) ⇒ Object Also known as: random



99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/scruber/helpers/proxy_rotator.rb', line 99

def next(options={})
  # raise Scruber::ArgumentError.new("Proxy rotator not configured") if @configuration.nil?
  return nil if @configuration.nil?
  if @configuration.mode == :random
    @configuration.pickup.pick
  else
    if @cursor.nil? || @cursor >= @configuration.proxy_keys.count-1
      @cursor = 0
    else
      @cursor += 1
    end
    @configuration.proxies[@configuration.proxy_keys[@cursor]]
  end
end