module Rethinker::Document::Polymorphic::ClassMethods

Public Instance Methods

descendants_type_values() click to toggle source
# File lib/rethinker/document/polymorphic.rb, line 25
def descendants_type_values
  ([self] + descendants).map(&:type_value)
end
inherited(subclass) click to toggle source
Calls superclass method
# File lib/rethinker/document/polymorphic.rb, line 16
def inherited(subclass)
  super
  subclass.field :_type if is_root_class?
end
is_root_class?() click to toggle source
# File lib/rethinker/document/polymorphic.rb, line 29
def is_root_class?
  self == root_class
end
klass_from_attrs(attrs) click to toggle source
# File lib/rethinker/document/polymorphic.rb, line 33
def klass_from_attrs(attrs)
  attrs['_type'].try(:constantize) || root_class
end
type_value() click to toggle source
# File lib/rethinker/document/polymorphic.rb, line 21
def type_value
  name
end