class Bintray::Client::Ruby::Resources::Base
Public Class Methods
new(conn)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 8 def initialize(conn) @conn = conn end
Public Instance Methods
create_route(*route)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 29 def create_route(*route) File.join(route.flatten.compact.map(&:to_s)) end
parse_response(response)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 24 def parse_response(response) return handle_error(response) if response.status >= 300 handle_ok(response) end
request(http_method, path, query_params = {}, payload = {}, headers = {})
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 12 def request(http_method, path, query_params = {}, payload = {}, headers = {}) @conn.send(http_method) do |req| req.url(path) set_url_query_params(req, query_params) set_headers(req, headers) if payload.present? req.headers['Content-Type'] = 'application/json' req.body = JSON.dump(payload) end end end
Private Instance Methods
handle_error(response)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 35 def handle_error(response) raise HttpError.new(response) end
handle_ok(response)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 39 def handle_ok(response) JSON.parse(response.body) if response.body.present? end
set_headers(request, headers)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 54 def set_headers(request, headers) headers.each { |k,v| request.headers[k] = v } if headers.present? end
set_url_query_params(request, query_params)
click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 43 def set_url_query_params(request, query_params) return unless query_params.present? query_params.each do |k,v| if v.is_a?(Array) request.params[k] = v.join(',') else request.params[k] = v end end end