Callable object that should be called with every descendent class created.
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 44 def descendents Sequel.synchronize{_descendents} 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 53 def inherited(subclass) super Sequel.synchronize{subclasses << subclass} on_subclass.call(subclass) if on_subclass end
Recursive, non-thread safe version of descendents, since the mutex Sequel uses isn't reentrant.
# File lib/sequel/plugins/subclasses.rb, line 63 def _descendents subclasses.map{|x| [x] + x.send(:_descendents)}.flatten end