Sha256: dd83d6b38e1f22c49b19a8325bda7ac49e8e009cbf1f24ec7e452aca30e1c68c
Contents?: true
Size: 893 Bytes
Versions: 8
Compression:
Stored size: 893 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! raise RequestError.new( code: code, message: request_error_message, body: parsed_body, headers: headers ) 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