Sha256: f4d1195ffe251480b77cfa5772a9d7c84059f8798ae375d09655c40afaee4e78
Contents?: true
Size: 834 Bytes
Versions: 3
Compression:
Stored size: 834 Bytes
Contents
require "rexpense/exception" module Rexpense class RequestTimeout < Exception; end class RequestError < Exception; end class Response < SimpleDelegator def resolve! if success? block_given? ? yield(self) : self elsif timed_out? raise RequestTimeout else error! end end def parsed_body(key = nil) return JSON.parse(body)[key] unless key.nil? JSON.parse(body) rescue JSON::ParserError {} end private def error! raise RequestError.new( code: code, message: request_error_message, body: parsed_body ) end def request_error_message if !status_message.nil? && status_message != "" status_message else parsed_body["error"] || "" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rexpense-2.1.0 | lib/rexpense/response.rb |
rexpense-2.0.0 | lib/rexpense/response.rb |
rexpense-1.0.0 | lib/rexpense/response.rb |