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