| Module | Sequel::Plugins::Subclasses::ClassMethods |
| In: |
lib/sequel/plugins/subclasses.rb
|
| on_subclass | [R] | Callable object that should be called with every descendent class created. |
| subclasses | [R] | All subclasses for the current model. Does not include the model itself. |
All descendent classes of this model.
# File lib/sequel/plugins/subclasses.rb, line 54
54: def descendents
55: Sequel.synchronize{subclasses.dup}.map{|x| [x] + x.send(:descendents)}.flatten
56: end
Freeze all descendent classes. This also finalizes the associations for those classes before freezing.
# File lib/sequel/plugins/subclasses.rb, line 60
60: def freeze_descendents
61: descendents.each(&:finalize_associations).each(&:freeze)
62: end
Add the subclass to this model‘s current subclasses, and initialize a new subclasses instance variable in the subclass.
# File lib/sequel/plugins/subclasses.rb, line 69
69: def inherited(subclass)
70: super
71: Sequel.synchronize{subclasses << subclass}
72: on_subclass.call(subclass) if on_subclass
73: end