class Validic::Response

Attributes

attributes[R]
records[R]
summary[R]

Public Class Methods

new(response, connection = nil) click to toggle source
# File lib/validic/response.rb, line 8
def initialize(response, connection = nil)
  @connection = connection
  @summary = summary_object(response)
  case resp = response_object(response)
  when Array
    @records = resp
  when Hash
    @attributes = resp
  end
end

Public Instance Methods

next() click to toggle source
# File lib/validic/response.rb, line 19
def next
  return nil unless next_url = summary.next
  resp = get(next_url, {})
  self.class.new(resp, connection)
end
previous() click to toggle source
# File lib/validic/response.rb, line 25
def previous
  return nil unless previous_url = summary.previous
  resp = get(previous_url, {})
  self.class.new(resp, connection)
end

Private Instance Methods

camelize_response_key(resp) click to toggle source
# File lib/validic/response.rb, line 47
def camelize_response_key(resp)
  key = resp.keys.first
  key = key.include?('_') ? key.split('_').map(&:capitalize).join : key.capitalize
  key.chop! if %w(Users Apps).include?(key) #strip last letter off to match ::User or ::App
  key
end
connection() click to toggle source
# File lib/validic/response.rb, line 33
def connection
  @connection
end
response_object(resp) click to toggle source
# File lib/validic/response.rb, line 41
def response_object(resp)
  return resp.values.first if resp.values.first.is_a? Hash
  klass = Validic.const_get(camelize_response_key(resp))
  resp.values.flatten.collect { |obj| klass.new(obj) }
end
summary_object(resp) click to toggle source
# File lib/validic/response.rb, line 37
def summary_object(resp)
  Validic::Summary.new(resp.delete("summary"))
end