Class: UniParser::ProxyList

Inherits:
Object
  • Object
show all
Includes:
Enumerable, RoundRobin
Defined in:
lib/uni_parser/proxy_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RoundRobin

#next!

Constructor Details

#initialize(proxies = []) ⇒ ProxyList

Returns a new instance of ProxyList.



9
10
11
12
# File 'lib/uni_parser/proxy_list.rb', line 9

def initialize(proxies = [])
  @proxies = proxies
  @frozen_proxies = []
end

Instance Attribute Details

#frozen_proxiesObject (readonly)

Returns the value of attribute frozen_proxies.



6
7
8
# File 'lib/uni_parser/proxy_list.rb', line 6

def frozen_proxies
  @frozen_proxies
end

#proxiesObject (readonly)

Returns the value of attribute proxies.



7
8
9
# File 'lib/uni_parser/proxy_list.rb', line 7

def proxies
  @proxies
end

Instance Method Details

#<<(proxy) ⇒ Object



18
19
20
# File 'lib/uni_parser/proxy_list.rb', line 18

def <<(proxy)
  @proxies << proxy
end

#each(&block) ⇒ Object



14
15
16
# File 'lib/uni_parser/proxy_list.rb', line 14

def each(&block)
  @proxies.each(&block)
end

#freeze_proxy(proxy) ⇒ Object



27
28
29
30
31
32
# File 'lib/uni_parser/proxy_list.rb', line 27

def freeze_proxy(proxy)
  return unless proxy
  @proxies.delete proxy
  proxy.freeze
  @frozen_proxies << proxy unless proxy.in?(@frozen_proxies)
end

#nextObject



22
23
24
25
# File 'lib/uni_parser/proxy_list.rb', line 22

def next
  unfreeze_proxies
  next! @proxies
end

#unfreeze_proxiesObject



34
35
36
37
38
39
40
# File 'lib/uni_parser/proxy_list.rb', line 34

def unfreeze_proxies
  @frozen_proxies.each do |proxy|
    return if proxy.frozen?
    @frozen_proxies.delete proxy
    @proxies << proxy
  end
end