3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# 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
|