Class: Scraypa::UserAgentIterator

Inherits:
UserAgentAbstract show all
Defined in:
lib/scraypa/user_agent/user_agent_iterator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ UserAgentIterator

Returns a new instance of UserAgentIterator.



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/scraypa/user_agent/user_agent_iterator.rb', line 5

def initialize *args
  super(*args)
  @config = args[0] || {}
  @change_after_n_requests = @config.fetch(:change_after_n_requests, 0)
  @list_limit = @config.fetch(:list_limit, 0).to_i
  @strategy = @config.fetch(:strategy, :roundrobin)
  @list = limit_list to_array@config.fetch(:list, USER_AGENT_LIST)
  @reducing_list = @list.clone
  @current_user_agent = nil
  @current_user_agent_requests = 0
end

Instance Attribute Details

#current_user_agentObject (readonly)

Returns the value of attribute current_user_agent.



3
4
5
# File 'lib/scraypa/user_agent/user_agent_iterator.rb', line 3

def current_user_agent
  @current_user_agent
end

Instance Method Details

#listObject



27
28
29
# File 'lib/scraypa/user_agent/user_agent_iterator.rb', line 27

def list
  @list
end

#user_agentObject



17
18
19
20
21
22
23
24
25
# File 'lib/scraypa/user_agent/user_agent_iterator.rb', line 17

def user_agent
  get_a_new_user_agent? ? (
    @current_user_agent_requests = 0
    select_user_agent_using_strategy
  ) : (
    @current_user_agent_requests += 1
    @current_user_agent
  )
end