Module: Sequel::Plugins::Subclasses

Defined in:
lib/sequel/lib/sequel/plugins/subclasses.rb

Overview

The Subclasses plugin keeps track of all subclasses of the current model class. Direct subclasses are available via the subclasses method, and all descendent classes are available via the descendents method.

c = Class.new(Sequel::Model)
c.plugin :subclasses
sc1 = Class.new(c)
sc2 = Class.new(c)
ssc1 = Class.new(sc1)
c.subclasses    # [sc1, sc2]
sc1.subclasses  # [ssc1]
sc2.subclasses  # []
ssc1.subclasses # []
c.descendents   # [sc1, ssc1, sc2]

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Class Method Details

.apply(model, &block) ⇒ Object

Initialize the subclasses instance variable for the model.


20
21
22
# File 'lib/sequel/lib/sequel/plugins/subclasses.rb', line 20

def self.apply(model, &block)
  model.instance_variable_set(:@subclasses, [])
end