From f0fa4772e6987231bd9e7cc6a3f99592c3f25d5c Mon Sep 17 00:00:00 2001 From: Nicola Racco Date: Fri, 30 May 2014 11:27:07 +0200 Subject: [PATCH] store raw response in InvalidAPIResponse --- lib/lol/invalid_api_response.rb | 10 ++++++++++ lib/lol/request.rb | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 lib/lol/invalid_api_response.rb diff --git a/lib/lol/invalid_api_response.rb b/lib/lol/invalid_api_response.rb new file mode 100644 index 0000000..222e509 --- /dev/null +++ b/lib/lol/invalid_api_response.rb @@ -0,0 +1,10 @@ +module Lol + class InvalidAPIResponse < StandardError + attr_reader :raw + + def initialize url, response + super "#{response["status"]["message"]} calling #{url}" + @raw = raw + end + end +end \ No newline at end of file diff --git a/lib/lol/request.rb b/lib/lol/request.rb index 67f4bba..dcc30a2 100644 --- a/lib/lol/request.rb +++ b/lib/lol/request.rb @@ -1,7 +1,7 @@ require "uri" +require "lol/invalid_api_response" module Lol - class InvalidAPIResponse < StandardError; end class NotFound < StandardError; end class InvalidCacheStore < StandardError; end @@ -53,7 +53,7 @@ def perform_request url response = self.class.get(url) raise NotFound.new("404 Not Found") if response.respond_to?(:code) && response.not_found? - raise InvalidAPIResponse.new(response["status"]["message"]) if response.is_a?(Hash) && response["status"] + raise InvalidAPIResponse.new(url, response) if response.is_a?(Hash) && response["status"] store.setex clean_url(url), ttl, response.to_json if cached?