class Assembla::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/assembla_api/response_wrapper.rb, line 19 def initialize(response, current_api) @response = response @current_api = current_api @env = response.env end
Public Instance Methods
==(other)
click to toggle source
Compare the wrapper with other wrapper for equality
# File lib/assembla_api/response_wrapper.rb, line 149 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/assembla_api/response_wrapper.rb, line 81 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/assembla_api/response_wrapper.rb, line 46 def body @body ? @body : response.body end
body=(value)
click to toggle source
# File lib/assembla_api/response_wrapper.rb, line 39 def body=(value) @body = value @env[:body] = value end
client_error?()
click to toggle source
# File lib/assembla_api/response_wrapper.rb, line 64 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/assembla_api/response_wrapper.rb, line 109 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/assembla_api/response_wrapper.rb, line 117 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/assembla_api/response_wrapper.rb, line 74 def headers Assembla::Response::Header.new(env) end
inspect()
click to toggle source
Print only response body
# File lib/assembla_api/response_wrapper.rb, line 143 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/assembla_api/response_wrapper.rb, line 123 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/assembla_api/response_wrapper.rb, line 60 def redirect? status.to_i >= 300 && status.to_i < 400 end
respond_to?(method_name)
click to toggle source
Check if method is defined on the body
Calls superclass method
# File lib/assembla_api/response_wrapper.rb, line 133 def respond_to?(method_name) if self.has_key?(method_name.to_s) true else super end end
server_error?()
click to toggle source
# File lib/assembla_api/response_wrapper.rb, line 68 def server_error? status.to_i >= 500 && status.to_i < 600 end
status()
click to toggle source
Response
status
# File lib/assembla_api/response_wrapper.rb, line 52 def status response.status end
success?()
click to toggle source
# File lib/assembla_api/response_wrapper.rb, line 56 def success? response.success? end
to_ary()
click to toggle source
Convert the ResponseWrapper
into an Array
# File lib/assembla_api/response_wrapper.rb, line 103 def to_ary body.to_ary end
to_hash()
click to toggle source
Convert the ResponseWrapper
into a Hash
# File lib/assembla_api/response_wrapper.rb, line 97 def to_hash body.to_hash end
to_s()
click to toggle source
Return response body as string
# File lib/assembla_api/response_wrapper.rb, line 91 def to_s body.to_s end
url()
click to toggle source
Request
url
# File lib/assembla_api/response_wrapper.rb, line 35 def url response.env[:url].to_s end