Sha256: 604f70a252ae6f94d4bd0b7e3a79e8338ac5e0ef8c2f9659ad1830f6d7b4db4d
Contents?: true
Size: 887 Bytes
Versions: 8
Compression:
Stored size: 887 Bytes
Contents
require "myfinance/exception" module Myfinance RequestTimeout = Class.new(Exception) RequestError = Class.new(Exception) class Response < SimpleDelegator def resolve! if success? block_given? ? yield(self) : self elsif timed_out? timeout! else error! end end def parsed_body(key = nil) return MultiJson.load(body)[key] unless key.nil? MultiJson.load(body) rescue MultiJson::ParseError {} end private def timeout! raise RequestTimeout end def error! error = RequestError.new( code: code, message: request_error_message, body: parsed_body ) raise error end def request_error_message return status_message if !status_message.nil? && status_message != "" parsed_body["error"] || "" end end end
Version data entries
8 entries across 8 versions & 1 rubygems