class ActiveRestClient::Connection
Attributes
base_url[RW]
session[RW]
Public Class Methods
new(base_url)
click to toggle source
# File lib/active_rest_client/connection.rb, line 11 def initialize(base_url) @base_url = base_url @session = new_session end
Public Instance Methods
delete(path, options={})
click to toggle source
# File lib/active_rest_client/connection.rb, line 69 def delete(path, options={}) set_defaults(options) make_safe_request(path) do @session.delete(path) do |req| req.headers = req.headers.merge(options[:headers]) sign_request(req, options[:api_auth]) end end end
get(path, options={})
click to toggle source
# File lib/active_rest_client/connection.rb, line 37 def get(path, options={}) set_defaults(options) make_safe_request(path) do @session.get(path) do |req| req.headers = req.headers.merge(options[:headers]) sign_request(req, options[:api_auth]) end end end
headers()
click to toggle source
# File lib/active_rest_client/connection.rb, line 20 def headers @session.headers end
make_safe_request(path, &block)
click to toggle source
# File lib/active_rest_client/connection.rb, line 24 def make_safe_request(path, &block) block.call rescue Faraday::Error::TimeoutError raise ActiveRestClient::TimeoutException.new("Timed out getting #{full_url(path)}") rescue Faraday::Error::ConnectionFailed begin reconnect block.call rescue Faraday::Error::ConnectionFailed raise ActiveRestClient::ConnectionFailedException.new("Unable to connect to #{full_url(path)}") end end
post(path, data, options={})
click to toggle source
# File lib/active_rest_client/connection.rb, line 58 def post(path, data, options={}) set_defaults(options) make_safe_request(path) do @session.post(path) do |req| req.headers = req.headers.merge(options[:headers]) req.body = data sign_request(req, options[:api_auth]) end end end
put(path, data, options={})
click to toggle source
# File lib/active_rest_client/connection.rb, line 47 def put(path, data, options={}) set_defaults(options) make_safe_request(path) do @session.put(path) do |req| req.headers = req.headers.merge(options[:headers]) req.body = data sign_request(req, options[:api_auth]) end end end
reconnect()
click to toggle source
# File lib/active_rest_client/connection.rb, line 16 def reconnect @session = new_session end
Private Instance Methods
full_url(path)
click to toggle source
# File lib/active_rest_client/connection.rb, line 85 def full_url(path) @session.build_url(path).to_s end
new_session()
click to toggle source
# File lib/active_rest_client/connection.rb, line 81 def new_session Faraday.new({url: @base_url}, &ActiveRestClient::Base.faraday_config) end
set_defaults(options)
click to toggle source
# File lib/active_rest_client/connection.rb, line 89 def set_defaults(options) options[:headers] ||= {} options[:api_auth] ||= {} return options end
sign_request(request, api_auth)
click to toggle source
# File lib/active_rest_client/connection.rb, line 95 def sign_request(request, api_auth) return if api_auth[:api_auth_access_id].nil? || api_auth[:api_auth_secret_key].nil? ApiAuth.sign!( request, api_auth[:api_auth_access_id], api_auth[:api_auth_secret_key]) end