class Nobel::Api

Attributes

config[RW]

Public Class Methods

new(config) click to toggle source
# File lib/nobel/api.rb, line 10
def initialize(config)
  @config = config
end

Public Instance Methods

country() click to toggle source
# File lib/nobel/api.rb, line 22
def country
  get_json :country
end
get(path, params = {}) click to toggle source
# File lib/nobel/api.rb, line 30
def get(path, params = {})
  uri = prepared_uri(path, params)

  puts "GET: #{uri}" if @config.debug?

  http_get(uri)
end
get_json(endpoint, params = {}) click to toggle source
# File lib/nobel/api.rb, line 26
def get_json(endpoint, params = {})
  load_json get("#{endpoint}.json", params) || "{}"
end
laureate(params = {}) click to toggle source
# File lib/nobel/api.rb, line 18
def laureate(params = {})
  get_json :laureate, params
end
prize(params = {}) click to toggle source
# File lib/nobel/api.rb, line 14
def prize(params = {})
  get_json :prize, params
end

Private Instance Methods

endpoint_uri(endpoint) click to toggle source
# File lib/nobel/api.rb, line 54
def endpoint_uri(endpoint)
  URI.parse("#{@config.base_url}/#{endpoint}")
end
http_get(uri) click to toggle source
# File lib/nobel/api.rb, line 40
def http_get(uri)
  @config.http_client.get(uri)
end
load_json(doc) click to toggle source
# File lib/nobel/api.rb, line 44
def load_json(doc)
  @config.json_parser.call(doc)
end
prepared_uri(endpoint, params = {}) click to toggle source
# File lib/nobel/api.rb, line 48
def prepared_uri(endpoint, params = {})
  endpoint_uri(endpoint).tap do |uri|
    uri.query = URI.encode_www_form(params)
  end
end