t6d / smart_properties

Ruby accessors on steroids
MIT License
177 stars 20 forks source link

SmartProperties don't work correctly over more than two layers of inheritance #24

Closed t6d closed 9 years ago

t6d commented 9 years ago
require 'smart_properties'

class A
  include SmartProperties

  property :a, default: :a, required: true
end

class B < A
  property :b, default: :b
end

class C < B
  property :c, default: :c
end

class D < C
  property :d, default: :d
end

d = D.new a: nil # doesn't raise
puts d.a, d.b, d.c, d.d # prints only c and d