10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/flapjack-diner/tools.rb', line 10
def related(record, rel, incl = included_data)
return if incl.nil?
type = record[return_keys_as_strings ? 'type' : :type]
return if type.nil?
res = Flapjack::Diner::Configuration::RESOURCES.values.detect do |r|
type.eql?(r[:resource])
end
return if res.nil? || res[:relationships].nil?
rel_cfg = res[:relationships][rel.to_sym]
return if rel_cfg.nil?
rel_type = rel_cfg[:resource]
has_data = incl.key?(rel_type)
case rel_cfg[:number]
when :singular
has_data ? singularly_related(record, rel, rel_type, incl) : nil
else
has_data ? multiply_related(record, rel, rel_type, incl) : []
end
end
|