Method: Graphiti::Resource::Polymorphism::ClassMethods#sideload

Defined in:
lib/graphiti/resource/polymorphism.rb

#sideload(name) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/graphiti/resource/polymorphism.rb', line 44

def sideload(name)
  if (split_on = name.to_s.split(/^on__/)).length > 1
    on_type, name = split_on[1].split("--").map(&:to_sym)
  end

  sl = super(name)
  if !polymorphic_child? && sl.nil?
    children.each do |c|
      next if on_type && c.type != on_type
      break if (sl = c.sideloads[name])
    end
  end
  sl
end