lib/lol/request.rb in ruby-lol-0.9.17 vs lib/lol/request.rb in ruby-lol-0.9.18

- old
+ new

@@ -1,7 +1,6 @@ require "uri" -require "lol/invalid_api_response" module Lol class NotFound < StandardError; end class InvalidCacheStore < StandardError; end @@ -32,11 +31,11 @@ # Returns a full url for an API call # @param path [String] API path to call # @return [String] full fledged url def api_url path, params = {} query_string = URI.encode_www_form params.merge api_key: api_key - File.join "http://prod.api.pvp.net/api/lol/#{region}/#{self.class.api_version}/", "#{path}?#{query_string}" + File.join "http://#{region}.api.pvp.net/api/lol/#{region}/#{self.class.api_version}/", "#{path}?#{query_string}" end # Returns just a path from a full api url # @return [String] def clean_url(url) @@ -50,11 +49,13 @@ if cached? && result = store.get(clean_url(url)) return JSON.parse(result) end response = self.class.get(url) - raise NotFound.new("404 Not Found") if response.respond_to?(:code) && response.not_found? - raise InvalidAPIResponse.new(url, response) if response.is_a?(Hash) && response["status"] + if response.respond_to?(:code) && !(200...300).include?(response.code) + raise NotFound.new("404 Not Found") if response.not_found? + raise InvalidAPIResponse.new(url, response) + end store.setex clean_url(url), ttl, response.to_json if cached? response end