Sha256: 6a6d4fb1c9e99ea23b70e50a4f2aa2d6161e3ee824e81f87f58143178d9e3634
Contents?: true
Size: 920 Bytes
Versions: 2
Compression:
Stored size: 920 Bytes
Contents
# frozen_string_literal: true require "http" require "ezclient/version" require "ezclient/request" require "ezclient/response" class EzClient def initialize(options = {}) self.options = options self.clients = {} end def request(verb, url, **options) keep_alive_timeout = options.delete(:keep_alive) if keep_alive_timeout client = persistent_client_for(url, timeout: keep_alive_timeout) else client = HTTP::Client.new end Request.new(verb, url, client: client, **default_options, **options) end private attr_accessor :options, :clients def persistent_client_for(url, timeout: 600) uri = HTTP::URI.parse(url) clients[uri.origin] ||= HTTP.persistent(uri.origin, timeout: timeout) end def default_options() { on_complete: options[:on_complete], on_error: options[:on_error], timeout: options[:default_timeout], } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ezclient-0.3.0 | lib/ezclient.rb |
ezclient-0.2.0 | lib/ezclient.rb |