class MasterLeague::Fetcher
Attributes
last_response[R]
Public Instance Methods
fetch(path, params = {})
click to toggle source
# File lib/master_league/fetcher.rb, line 7 def fetch(path, params = {}) if MasterLeague.caching_enabled? cache_key = [path, params].join('.') cached_response = MasterLeague.cache.read(cache_key) if cached_response cached_response else response = HTTP.get("#{base_url}/#{path}", params: params.merge(format: 'json')) handle_response(response, cache_key: cache_key) end else response = HTTP.get("#{base_url}/#{path}", params: params.merge(format: 'json')) handle_response(response) end end
Private Instance Methods
base_url()
click to toggle source
# File lib/master_league/fetcher.rb, line 40 def base_url 'https://api.masterleague.net' end
handle_response(response, cache_key: nil)
click to toggle source
# File lib/master_league/fetcher.rb, line 26 def handle_response(response, cache_key: nil) @last_response = response if response.status.ok? if cache_key MasterLeague.cache.write(cache_key, response.parse) else response.parse end else raise "Something went wrong. #{response.status}: #{response}" end end