lib/ezclient.rb in ezclient-0.5.0 vs lib/ezclient.rb in ezclient-0.6.0
- old
+ new
@@ -1,51 +1,14 @@
# frozen_string_literal: true
require "http"
require "ezclient/version"
+require "ezclient/client"
require "ezclient/request"
require "ezclient/response"
+require "ezclient/errors"
-class EzClient
- def initialize(options = {})
- self.options = options
- self.clients = {}
- end
-
- def request(verb, url, **options)
- options = { **default_options, **options }
-
- keep_alive_timeout = options.delete(:keep_alive)
- api_auth = options.delete(:api_auth)
-
- 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, **options).tap do |request|
- request.api_auth!(*api_auth) if api_auth
- end
- 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
- {
- api_auth: options[:api_auth],
- keep_alive: options[:keep_alive],
- max_retries: options[:max_retries],
- on_complete: options[:on_complete],
- on_error: options[:on_error],
- retry_exceptions: options[:retry_exceptions],
- timeout: options[:default_timeout],
- }
+module EzClient
+ def self.new(*args)
+ Client.new(*args)
end
end