Module: Rethinker::Document::Polymorphic::ClassMethods
- Defined in:
- lib/rethinker/document/polymorphic.rb
Instance Method Summary collapse
- #descendants_type_values ⇒ Object
- #inherited(subclass) ⇒ Object
- #is_root_class? ⇒ Boolean
- #klass_from_attrs(attrs) ⇒ Object
- #type_value ⇒ Object
Instance Method Details
#descendants_type_values ⇒ Object
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
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_value ⇒ Object
21 22 23 |
# File 'lib/rethinker/document/polymorphic.rb', line 21 def type_value name end |