class TvMaze::Requester

Public Class Methods

get(action, params={}) click to toggle source
# File lib/tv_maze/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

Private Class Methods

api() click to toggle source
# File lib/tv_maze/requester.rb, line 14
def api
  TvMaze::Api.instance
end
parse_response(response_body) click to toggle source
# File lib/tv_maze/requester.rb, line 33
def parse_response(response_body)
  begin
    JSON.parse(response_body)
  rescue JSON::ParserError => e
    raise TvMaze::Exception::JsonParseError.new("Response body could not be parsed: #{e.message}")
  end
end
perform_request(&block) click to toggle source
# File lib/tv_maze/requester.rb, line 18
def perform_request(&block)
  begin
    block.call
  rescue RestClient::Exception => e
    raise TvMaze::Exception::Api.new(e.message)
  end
end
request_headers() click to toggle source
# File lib/tv_maze/requester.rb, line 26
def request_headers
  Hash.new.tap do |headers|
    headers['Accept'] = 'application/json'
    headers['Content-Type'] = 'application/json'
  end
end