class Iugu::Factory

Public Class Methods

create_from_response(object_type, response, errors = nil) click to toggle source
# File lib/iugu/factory.rb, line 3
def self.create_from_response(object_type, response, errors = nil)
  if response.nil?
    obj = Iugu.const_get(Iugu::Utils.camelize(object_type)).new
    obj.errors = errors if errors
    obj
  elsif response.is_a?(Array)
    results = []
    response.each do |i|
      results.push Iugu.const_get(Iugu::Utils.camelize(object_type)).new i
    end
    Iugu::SearchResult.new results, results.count
  elsif response['items'] && response['totalItems']
    results = []
    response['items'].each do |v|
      results.push self.create_from_response(object_type, v)
    end
    Iugu::SearchResult.new results, response['totalItems']
  else
    Iugu.const_get(Iugu::Utils.camelize(object_type)).new response
  end
end