module Duedil::Client
Attributes
api_key[RW]
base_url[RW]
locale[RW]
sandbox[RW]
version[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/duedil/client.rb, line 15 def initialize(options = {}) @api_key = options.delete(:api_key) @version = options.delete(:version) @base_url = options.delete(:base_url) @sandbox = options.delete(:sandbox).present? @locale = options.delete(:locale) || 'uk' @http = options.delete(:http) || Net::HTTP end
Private Instance Methods
base_path()
click to toggle source
# File lib/duedil/client.rb, line 26 def base_path @base_path ||= begin path = "/#{version}" path += "/sandbox" if sandbox path += "/#{locale}" path end end
escape(value)
click to toggle source
# File lib/duedil/client.rb, line 57 def escape(value) CGI.escape value.to_s end
path(endpoint)
click to toggle source
# File lib/duedil/client.rb, line 35 def path(endpoint) "#{base_path}/#{endpoint}" end
request(path, params = {})
click to toggle source
# File lib/duedil/client.rb, line 39 def request(path, params = {}) request_uri = request_uri(path, params.merge(:api_key => api_key)) response = @http.get_response(base_url, request_uri) Response.new(response) end
request_uri(path, hash = {})
click to toggle source
# File lib/duedil/client.rb, line 45 def request_uri(path, hash = {}) query_params = hash.map do |key, value| if value.is_a? Hash "#{escape(key)}=#{escape(value.to_json)}" else "#{escape(key)}=#{escape(value)}" end end path + '?' + query_params.flatten.join('&') end