class Igdb::Requester

Public Class Methods

delete(action) click to toggle source
# File lib/igdb/requester.rb, line 21
def delete(action)
  url = api.url_for(action)
  perform_request do
    parse_response(RestClient.post(url, {}, request_headers))
  end
end
get(action, params = {}) click to toggle source
# File lib/igdb/requester.rb, line 7
def get(action, params = {})
  url = api.url_for(action, params)
  perform_request do
    parse_response(RestClient.get(url, request_headers))
  end
end
post(action, params = {}, form_data = {}) click to toggle source
# File lib/igdb/requester.rb, line 14
def post(action, params = {}, form_data = {})
  url = api.url_for(action, params)
  perform_request do
    parse_response(RestClient.post(url, form_data.to_json, request_headers))
  end
end

Private Class Methods

api() click to toggle source
# File lib/igdb/requester.rb, line 30
def api
  Igdb::Configuration::Api.instance
end
parse_response(response_body) click to toggle source
# File lib/igdb/requester.rb, line 47
def parse_response(response_body)
    JSON.parse(response_body)
rescue JSON::ParserError => e
    raise Igdb::Exception::JsonParseError, "Response body could not be parsed: #{e.message}"
end
perform_request() { || ... } click to toggle source
# File lib/igdb/requester.rb, line 34
def perform_request
    yield
rescue RestClient::Exception => e
    raise Igdb::Exception::Api, e.message
end
request_headers() click to toggle source
# File lib/igdb/requester.rb, line 40
def request_headers
  {}.tap do |headers|
    headers['Accept'] = 'application/json'
    headers['user-key'] = api.api_key
  end
end