module Pour::Mould::ClassMethods

Public Instance Methods

pour(pourable) click to toggle source
# File lib/pour/mould.rb, line 4
def pour(pourable)
  unless pourable.included_modules.include?(Pour::Pourable)
    # TODO(mtwilliams): Use a custom exceptin type, Pour::Unpourable.
    raise ":("
  end

  poured = self.class_variable_get(:@@__poured__)

  unless poured.include? pourable
    self.class_variable_set(:@@__poured__, poured + [pourable])

    # This capture all the properties as well as any user-defined methods.
    self.include(pourable)
  end
end