class Pour::Mould

Public Class Methods

inherited(mould) click to toggle source
# File lib/pour/mould.rb, line 24
def self.inherited(mould)
  mould.send :include, Pour::Propertied

  mould.send :extend, ClassMethods
  mould.send :include, InstanceMethods
  # We can assume nothing has been "poured" into |mold|.
  mould.class_variable_set(:@@__poured__, [])

  mould.define_singleton_method :inherited do |descendent|
    mould.send :include, Pour::Propertied
    descendent.class_variable_set(:@@__properties__, mould.class_variable_get(:@@__properties__))

    descendent.send :extend, ClassMethods
    descendent.send :include, InstanceMethods
    descendent.class_variable_set(:@@__poured__, mould.class_variable_get(:@@__poured__))
  end
end