I am reading about SOLID principles. In Ruby tutorials and code samples, I often see subclass extensions like:
class House
attr_reader :items
end
class Room < House
attr_reader :chair
end
p House.chair = 'baroque_style'# => NoMethodError
Of course the examples are useful to show how easily classes are manipulate in ruby, but isn't this a violation of the Liskov Substitution Principle?