class Github::ResponseWrapper
A class responsible for proxing to faraday response
Attributes
current_api[R]
env[R]
response[R]
Public Class Methods
new(response, current_api)
click to toggle source
# File lib/github_api/response_wrapper.rb, line 22 def initialize(response, current_api) @response = response @current_api = current_api @env = response.env @body = nil end
Public Instance Methods
==(other)
click to toggle source
Compare the wrapper with other wrapper for equality
# File lib/github_api/response_wrapper.rb, line 153 def ==(other) return false unless other.is_a?(self.class) return false unless (other.respond_to?(:env) && other.respond_to?(:body)) self.env == other.env && self.body == other.body end
Also aliased as: eql?
[](key)
click to toggle source
Lookup an attribute from the body if hash, otherwise behave like array index. Convert any key to string before calling.
# File lib/github_api/response_wrapper.rb, line 85 def [](key) if self.body.is_a?(Array) self.body[key] else self.body.send(:"#{key}") end end
body()
click to toggle source
Response
raw body
# File lib/github_api/response_wrapper.rb, line 50 def body @body ? @body : response.body end
body=(value)
click to toggle source
# File lib/github_api/response_wrapper.rb, line 43 def body=(value) @body = value @env[:body] = value end
client_error?()
click to toggle source
# File lib/github_api/response_wrapper.rb, line 68 def client_error? status.to_i >= 400 && status.to_i < 500 end
each() { |part| ... }
click to toggle source
Iterate over each resource inside the body
# File lib/github_api/response_wrapper.rb, line 113 def each body_parts = self.body.respond_to?(:each) ? self.body : [self.body] return body_parts.to_enum unless block_given? body_parts.each { |part| yield(part) } end
has_key?(key)
click to toggle source
Check if body has an attribute
# File lib/github_api/response_wrapper.rb, line 121 def has_key?(key) self.body.is_a?(Hash) && self.body.has_key?(key) end
headers()
click to toggle source
Return response headers
# File lib/github_api/response_wrapper.rb, line 78 def headers Github::Response::Header.new(env) end
inspect()
click to toggle source
Print only response body
# File lib/github_api/response_wrapper.rb, line 147 def inspect "#<#{self.class.name} @body=\"#{self.body}\">" end
method_missing(method_name, *args, &block)
click to toggle source
Coerce any method calls for body attributes
Calls superclass method
# File lib/github_api/response_wrapper.rb, line 127 def method_missing(method_name, *args, &block) if self.has_key?(method_name.to_s) self.[](method_name, &block) else super end end
redirect?()
click to toggle source
# File lib/github_api/response_wrapper.rb, line 64 def redirect? status.to_i >= 300 && status.to_i < 400 end
respond_to?(method_name, include_all = false)
click to toggle source
Check if method is defined on the body
Calls superclass method
# File lib/github_api/response_wrapper.rb, line 137 def respond_to?(method_name, include_all = false) if self.has_key?(method_name.to_s) true else super end end
server_error?()
click to toggle source
# File lib/github_api/response_wrapper.rb, line 72 def server_error? status.to_i >= 500 && status.to_i < 600 end
status()
click to toggle source
Response
status
# File lib/github_api/response_wrapper.rb, line 56 def status response.status end
success?()
click to toggle source
# File lib/github_api/response_wrapper.rb, line 60 def success? response.success? end
to_ary()
click to toggle source
Convert the ResponseWrapper
into an Array
# File lib/github_api/response_wrapper.rb, line 107 def to_ary body.to_ary end
to_hash()
click to toggle source
Convert the ResponseWrapper
into a Hash
# File lib/github_api/response_wrapper.rb, line 101 def to_hash body.to_hash end
to_s()
click to toggle source
Return response body as string
# File lib/github_api/response_wrapper.rb, line 95 def to_s body.to_s end
url()
click to toggle source
Request
url
# File lib/github_api/response_wrapper.rb, line 39 def url response.env[:url].to_s end