module ResourceKit::InheritableAttribute

Public Class Methods

inherit(klass, name) click to toggle source
# File lib/resource_kit/inheritable_attribute.rb, line 15
def self.inherit(klass, name)
  return unless klass.superclass.respond_to?(name) and value = klass.superclass.send(name)
  value.clone
end

Public Instance Methods

inheritable_attr(name) click to toggle source
# File lib/resource_kit/inheritable_attribute.rb, line 3
    def inheritable_attr(name)
      instance_eval <<-RUBY
        def #{name}=(v)
          @#{name} = v
        end

        def #{name}
          @#{name} ||= InheritableAttribute.inherit(self, :#{name})
        end
      RUBY
    end