module Graphiti::Resource::Polymorphism

Public Class Methods

prepended(klass) click to toggle source
# File lib/graphiti/resource/polymorphism.rb, line 6
def self.prepended(klass)
  klass.extend ClassMethods
end

Public Instance Methods

_associate(meth, parent, other, association_name, type) click to toggle source
# File lib/graphiti/resource/polymorphism.rb, line 27
def _associate(meth, parent, other, association_name, type)
  child_resource = self.class.resource_for_model(parent)
  if child_resource.sideloads[association_name]
    child_resource.new.adapter
      .send(meth, parent, other, association_name, type)
  end
end
associate(*args) click to toggle source
# File lib/graphiti/resource/polymorphism.rb, line 23
def associate(*args)
  _associate(:associate, *args)
end
associate_all(*args) click to toggle source
# File lib/graphiti/resource/polymorphism.rb, line 19
def associate_all(*args)
  _associate(:associate_all, *args)
end
serializer_for(model) click to toggle source
# File lib/graphiti/resource/polymorphism.rb, line 10
def serializer_for(model)
  if polymorphic_child?
    serializer
  else
    child = self.class.resource_for_model(model)
    child.serializer
  end
end