module InheritableClassAttributes::ClassMethods

def inherited_with_inheritable_class_attributes(klass)

def inherited_with_inheritable_class_attributes(klass)
  inherited_without_inheritable_class_attributes(klass) if respond_to?(:inherited_without_inheritable_class_attributes)
  readers = inheritable_cattr_readers.dup
  writers = inheritable_cattr_writers.dup
  inheritables = [:inheritable_cattr_readers, :inheritable_cattr_writers]
  (readers + writers + inheritables).uniq.each do |attr|
    var = "@#{attr}"
    old_value = self.module_eval(var)
    new_value = (old_value.dup rescue old_value)
    klass.module_eval("#{var} = new_value")
  end
end