Class: ProxyFetcher::Client::ProxiesRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/proxy_fetcher/client/proxies_registry.rb

Class Method Summary collapse

Class Method Details

.find_proxy_for(url) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/proxy_fetcher/client/proxies_registry.rb', line 10

def find_proxy_for(url)
  proxy = if URI.parse(url).is_a?(URI::HTTPS)
            manager.proxies.detect(&:ssl?)
          else
            manager.get
          end

  return proxy unless proxy.nil?

  manager.refresh_list!
  find_proxy_for(url)
end

.invalidate_proxy!(proxy) ⇒ Object



5
6
7
8
# File 'lib/proxy_fetcher/client/proxies_registry.rb', line 5

def invalidate_proxy!(proxy)
  manager.proxies.delete(proxy)
  manager.refresh_list! if manager.proxies.empty?
end

.managerObject



23
24
25
26
27
28
# File 'lib/proxy_fetcher/client/proxies_registry.rb', line 23

def manager
  manager = Thread.current[:proxy_fetcher_manager]
  return manager unless manager.nil?

  Thread.current[:proxy_fetcher_manager] = ProxyFetcher::Manager.new
end