Sha256: 4561079f6b1624db5d7d42030b5895233c6d2d24ee00d26b53ae9d1e3d7ef34b
Contents?: true
Size: 1.96 KB
Versions: 6
Compression:
Stored size: 1.96 KB
Contents
require 'multi_json' require 'nokogiri' require 'rest_client' require 'sports_data_api/request' require 'sports_data_api/version' require 'time' module SportsDataApi class << self def key(sport) @key ||= {} @key[sport] ||= '' @key[sport] end def set_key(sport, new_key) @key ||= {} @key[sport] = new_key end def access_level(sport) @access_level ||= {} @access_level[sport] ||= 't' @access_level[sport] end def set_access_level(sport, new_level) @access_level ||= {} @access_level[sport] = new_level end def generic_request(url, sport) begin RestClient.get(url, params: { api_key: SportsDataApi.key(sport) }) rescue RestClient::RequestTimeout raise Error, 'The API did not respond in a reasonable amount of time' rescue RestClient::Exception => e raise Error, exception_message(e) end end private def exception_message(e) if e.response.headers.key? :x_server_error JSON.parse(e.response.headers[:x_server_error])['message'] elsif e.response.headers.key? :x_mashery_error_code e.response.headers[:x_mashery_error_code] else 'The server did not specify a message' end end end LIBRARY_PATH = File.join(File.dirname(__FILE__), 'sports_data_api') autoload :Error, File.join(LIBRARY_PATH, 'error') autoload :Golf, File.join(LIBRARY_PATH, 'golf') autoload :JsonData, File.join(LIBRARY_PATH, 'json_data') autoload :MergedStats, File.join(LIBRARY_PATH, 'merged_stats') autoload :Mlb, File.join(LIBRARY_PATH, 'mlb') autoload :Nba, File.join(LIBRARY_PATH, 'nba') autoload :Ncaafb, File.join(LIBRARY_PATH, 'ncaafb') autoload :Ncaamb, File.join(LIBRARY_PATH, 'ncaamb') autoload :Nfl, File.join(LIBRARY_PATH, 'nfl') autoload :Nhl, File.join(LIBRARY_PATH, 'nhl') autoload :Stats, File.join(LIBRARY_PATH, 'stats') end
Version data entries
6 entries across 6 versions & 1 rubygems