module Declarative::Schema::Feature

Public Instance Methods

feature(*mods) click to toggle source

features are registered as defaults using _features, which in turn get translated to Class.new… { feature mod } which makes it recursive in nested schemas.

# File lib/declarative/schema.rb, line 88
def feature(*mods)
  mods.each do |mod|
    include mod
    register_feature(mod)
  end
end

Private Instance Methods

register_feature(mod) click to toggle source
# File lib/declarative/schema.rb, line 96
def register_feature(mod)
  heritage.record(:register_feature, mod) # this is only for inheritance between decorators and modules!!! ("horizontal and vertical")

  defaults.merge!( _features: Variables::Append([mod]) )
end