class Igdb::Requester

Public Class Methods

delete(action) click to toggle source
# File lib/igdb/requester.rb, line 20
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 6
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 13
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 28
def api
  Igdb::Configuration::Api.instance
end
parse_response(response_body) click to toggle source
# File lib/igdb/requester.rb, line 48
def parse_response(response_body)
  begin
    JSON.parse(response_body)
  rescue JSON::ParserError => e
    raise Igdb::Exception::JsonParseError.new("Response body could not be parsed: #{e.message}")
  end
end
perform_request(&block) click to toggle source
# File lib/igdb/requester.rb, line 32
def perform_request(&block)
  begin
    block.call
  rescue RestClient::Exception => e
    raise Igdb::Exception::Api.new(e.message)
  end
end
request_headers() click to toggle source
# File lib/igdb/requester.rb, line 40
def request_headers
  Hash.new.tap do |headers|
    headers['Accept'] = 'text/json'
    headers['Content-Type'] = 'text/json'
    headers['X-Mashape-Key'] = api.api_key
  end
end