require 'pp'
class LibraryItem
# class << self; attr_accessor :attributes; end
ATTRIBUTES = ['title', 'authors', 'location',]
end
class LibraryBook < LibraryItem
# ATTRIBUTES = LibraryItem::ATTRIBUTES
ATTRIBUTES.push 'ISBN', 'pages'
end
class Foo
ATTRIBUTES = ['title','authors','location']
end
class Bar < Foo
ATTRIBUTES |= ['ISBN', 'pages']
end
pp LibraryItem::ATTRIBUTES
pp LibraryBook::ATTRIBUTES
pp Foo::ATTRIBUTES
pp Bar::ATTRIBUTES
CnJlcXVpcmUgJ3BwJwoKY2xhc3MgTGlicmFyeUl0ZW0KICAjIGNsYXNzIDw8IHNlbGY7IGF0dHJfYWNjZXNzb3IgOmF0dHJpYnV0ZXM7IGVuZAogIEFUVFJJQlVURVMgPSBbJ3RpdGxlJywgJ2F1dGhvcnMnLCAnbG9jYXRpb24nLF0KZW5kCgpjbGFzcyBMaWJyYXJ5Qm9vayA8IExpYnJhcnlJdGVtCiAgIyBBVFRSSUJVVEVTID0gTGlicmFyeUl0ZW06OkFUVFJJQlVURVMKICBBVFRSSUJVVEVTLnB1c2ggJ0lTQk4nLCAncGFnZXMnCmVuZAoKY2xhc3MgRm9vCiAgQVRUUklCVVRFUyA9IFsndGl0bGUnLCdhdXRob3JzJywnbG9jYXRpb24nXQplbmQKCmNsYXNzIEJhciA8IEZvbwogIEFUVFJJQlVURVMgfD0gWydJU0JOJywgJ3BhZ2VzJ10KZW5kCgoKcHAgTGlicmFyeUl0ZW06OkFUVFJJQlVURVMKcHAgTGlicmFyeUJvb2s6OkFUVFJJQlVURVMKCgpwcCBGb286OkFUVFJJQlVURVMKcHAgQmFyOjpBVFRSSUJVVEVT
["title", "authors", "location", "ISBN", "pages"]
["title", "authors", "location", "ISBN", "pages"]
["title", "authors", "location"]
["title", "authors", "location", "ISBN", "pages"]