class KeyCDN::Client
Constants
- ENDPOINT
- METHOD_MAP
Public Class Methods
new(api_key)
click to toggle source
# File lib/keycdn.rb, line 18 def initialize(api_key) @api_key = api_key end
Public Instance Methods
del(url, params = {})
click to toggle source
# File lib/keycdn.rb, line 34 def del(url, params = {}) call url, :delete, params end
get(url, params = {})
click to toggle source
# File lib/keycdn.rb, line 22 def get(url, params = {}) call url, :get, params end
post(url, params = {})
click to toggle source
# File lib/keycdn.rb, line 26 def post(url, params = {}) call url, :post, params end
put(url, params = {})
click to toggle source
# File lib/keycdn.rb, line 30 def put(url, params = {}) call url, :put, params end
Private Instance Methods
call(url, method, params = {})
click to toggle source
# File lib/keycdn.rb, line 40 def call(url, method, params = {}) raise ArgumentError, "URL could not be empty" if url.nil? || url.empty? url = ENDPOINT + url uri = URI(url) request = Net::HTTP.new(uri.host, uri.port) request.use_ssl = true case method when :get full_url = encode_path_params(url, params) request_header = METHOD_MAP[method].new(full_url) else request_header = METHOD_MAP[method].new(uri.path) request_header.set_form_data(params) end request_header.basic_auth @api_key, '' response = request.start {|http| http.request(request_header) } parse_response(response) end
encode_path_params(path, params)
click to toggle source
# File lib/keycdn.rb, line 64 def encode_path_params(path, params) encoded = URI.encode_www_form(params) [path, encoded].join("?") end
parse_response(response)
click to toggle source
# File lib/keycdn.rb, line 69 def parse_response(response) body = response.body json = JSON.parse(body, :symbolize_names => false) json end