module JsonapiSerializer::DSL::Polymorphic

Attributes

meta_inherited[R]
meta_poly[R]
meta_resolver[R]

Public Instance Methods

inherited(subclass) click to toggle source
# File lib/jsonapi_serializer/dsl/polymorphic.rb, line 31
def inherited(subclass)
  parent = self
  subclass.class_eval do
    include JsonapiSerializer::Base
    @meta_attributes = parent.meta_attributes.clone
    @meta_relationships = parent.meta_relationships.clone
    @meta_id = parent.meta_id
    @meta_inherited = true
  end
  @meta_poly << subclass.to_s
end
polymorphic_for(*serializers) click to toggle source
# File lib/jsonapi_serializer/dsl/polymorphic.rb, line 27
def polymorphic_for(*serializers)
  @meta_poly += serializers.map(&:to_s)
end
resolver(&block) click to toggle source
# File lib/jsonapi_serializer/dsl/polymorphic.rb, line 19
def resolver(&block)
  if block_given?
    @meta_resolver = block
  else
    raise ArgumentError, "Resolver hook requires a block that takes record and returns its type."
  end
end