6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/clicksign/json_api/parser.rb', line 6
def self.parse(raw)
return { data: [], included: [], links: nil } if raw.nil?
raw_data = raw['data']
data = case raw_data
when Array then raw_data.map { |item| build(item) }
when Hash then [build(raw_data)]
else []
end
included = Array(raw['included'])
.select { |item| item.is_a?(Hash) && item['type'] }
.map { |item| build(item) }
links = raw['links'] if raw.key?('links')
{ data: data, included: included, links: links }
end
|