class Prolenea::Connection
Constants
- USER_AGENT
Attributes
faraday[RW]
options[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/prolenea/connection.rb, line 8 def initialize(options = {}) uri = options.delete :uri @options = options @faraday = self.create_faraday(uri, @options) end
Public Instance Methods
config_request(request, method, path, params, options)
click to toggle source
# File lib/prolenea/connection.rb, line 45 def config_request(request, method, path, params, options) case method.to_sym when :delete, :get request.url(path, params) when :post, :put request.path = path request.body = params unless params.empty? end request.options[:timeout] = (options[:timeout] ? options[:timeout] : Prolenea.default_timeout) request.options[:open_timeout] = (options[:open_timeout] ? options[:open_timeout] : Prolenea.default_timeout) request end
create_faraday(uri, options = {})
click to toggle source
# File lib/prolenea/connection.rb, line 14 def create_faraday(uri, options = {}) @faraday = Faraday.new uri, options do |c| c.headers['User-Agent'] = USER_AGENT c.request :multipart c.request :url_encoded c.response :prolenea_response c.adapter Faraday.default_adapter end end
delete(path, params={}, options={}, &callback)
click to toggle source
# File lib/prolenea/connection.rb, line 64 def delete(path, params={}, options={}, &callback) request(:delete, path, params, options, &callback) end
get(path, params={}, options={}, &callback)
click to toggle source
# File lib/prolenea/connection.rb, line 60 def get(path, params={}, options={}, &callback) request(:get, path, params, options, &callback) end
post(path, params={}, options={}, &callback)
click to toggle source
# File lib/prolenea/connection.rb, line 68 def post(path, params={}, options={}, &callback) request(:post, path, params, options, &callback) end
put(path, params={}, options={}, &callback)
click to toggle source
# File lib/prolenea/connection.rb, line 72 def put(path, params={}, options={}, &callback) request(:put, path, params, options, &callback) end
request(method, path, params, options, &callback)
click to toggle source
# File lib/prolenea/connection.rb, line 27 def request(method, path, params, options, &callback) sent_at = nil response = @faraday.send(method) { |request| sent_at = Time.now request = config_request(request, method, path, params, options) }.on_complete { |env| env[:total_time] = Time.now.utc.to_f - sent_at.utc.to_f if sent_at env[:request_params] = params env[:request_options] = options callback.call(env) if callback } response rescue Faraday::Error => fe raise ProleneaRequestError.new({:parent_error => fe}), fe.message end