diff --git a/lib/uber/inheritable_attr/dsl.rb b/lib/uber/inheritable_attr/dsl.rb new file mode 100644 index 0000000..461eabc --- /dev/null +++ b/lib/uber/inheritable_attr/dsl.rb @@ -0,0 +1,14 @@ +module Uber::InheritableAttr::DSL + include Uber::InheritableAttr + + def inheritable_attr(name, options={}) + super + instance_eval %Q{ + def #{name}(value = :__undefined) + return self.#{name} = value if value != :__undefined + return @#{name} if instance_variable_defined?(:@#{name}) + @#{name} = InheritableAttribute.inherit_for(self, :#{name}, #{options}) + end + } + end +end