Class: GoogleWebTranslate::ServerList

Inherits:
Object
  • Object
show all
Defined in:
lib/google_web_translate/server_list.rb

Class Method Summary collapse

Class Method Details

.next_server(rate_limit = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/google_web_translate/server_list.rb', line 25

def next_server(rate_limit = nil)
  @mutex ||= Mutex.new
  @mutex.synchronize do
    @counter ||= 0
    @counter += 1

    list = servers.sort_by { |i| i.counter || 0 }
    server = list[0]
    server.counter = @counter
    sleep(rate_limit_delay(server, rate_limit))
    server.last_used_at = Time.now
    server
  end
end

.serversObject



20
21
22
23
# File 'lib/google_web_translate/server_list.rb', line 20

def servers
  update_servers if @servers.nil?
  @servers.dup
end