class EzClient::PersistentClient

Attributes

keep_alive_timeout[RW]
last_request_at[RW]
origin[RW]

Public Class Methods

new(origin, keep_alive_timeout) click to toggle source
# File lib/ezclient/persistent_client.rb, line 8
def initialize(origin, keep_alive_timeout)
  self.origin = origin
  self.keep_alive_timeout = keep_alive_timeout
  self.last_request_at = nil
end

Public Instance Methods

perform(*args) click to toggle source
# File lib/ezclient/persistent_client.rb, line 14
def perform(*args)
  http_client.perform(*args).tap do
    self.last_request_at = EzClient.get_time
  end
end
timed_out?() click to toggle source
# File lib/ezclient/persistent_client.rb, line 20
def timed_out?
  last_request_at && EzClient.get_time - last_request_at >= keep_alive_timeout
end

Private Instance Methods

http_client() click to toggle source
# File lib/ezclient/persistent_client.rb, line 28
def http_client
  @http_client ||= HTTP.persistent(origin, timeout: keep_alive_timeout)
end