I have certain variables that are ‘properties’ and I keep track of them
in a
class instance variable called @fields, and each subclass may have it’s
own
fields. I want to navigate through the hierarchy and go through each
list, is
something like this possible?:
class View @fields = [:origin]
def View.fields()
super.fields() @fields
end
attr :origin
end
class Button < View @fields = [:caption]
attr :caption
end
View.fields() actually finds :cation when I do Button.fields(), but
super does
not work. Or maybe there is another way to do this?
not work. Or maybe there is another way to do this?
It seems to work if you replace View.fields with:
def View.fields @fields + (superclass.respond_to?(:fields) ? superclass.fields : [])
end
But this seems like a bit of a strange setup to me…
Thanks, that works. It is strange, but it’s the best way I see to
classify
instance variables as being ‘public properties’ or not. Here’s an
example of
how it will be used: