Module: Rethinker::Document::Polymorphic::ClassMethods

Defined in:
lib/rethinker/document/polymorphic.rb

Instance Method Summary collapse

Instance Method Details

#descendants_type_valuesObject



25
26
27
# File 'lib/rethinker/document/polymorphic.rb', line 25

def descendants_type_values
  ([self] + descendants).map(&:type_value)
end

#inherited(subclass) ⇒ Object



16
17
18
19
# File 'lib/rethinker/document/polymorphic.rb', line 16

def inherited(subclass)
  super
  subclass.field :_type if is_root_class?
end

#is_root_class?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/rethinker/document/polymorphic.rb', line 29

def is_root_class?
  self == root_class
end

#klass_from_attrs(attrs) ⇒ Object



33
34
35
# File 'lib/rethinker/document/polymorphic.rb', line 33

def klass_from_attrs(attrs)
  attrs['_type'].try(:constantize) || root_class
end

#type_valueObject



21
22
23
# File 'lib/rethinker/document/polymorphic.rb', line 21

def type_value
  name
end