module Kangaru::Concern
def append_features(base)
def append_features(base) super evaluate_concern_blocks!(base) end
def class_methods(&)
def class_methods(&) if const_defined?(:ClassMethods) const_get(:ClassMethods) else const_set(:ClassMethods, Module.new) end.module_eval(&) end
def evaluate_concern_blocks!(base)
def evaluate_concern_blocks!(base) base.extend(const_get(:ClassMethods)) if const_defined?(:ClassMethods) base.class_eval(&@included) if instance_variable_defined?(:@included) end
def included(base = nil, &block)
def included(base = nil, &block) super base if base return if block.nil? @included = block end