You might want to register sub classes with inherited like in
class Base
def self.inherited(cl) ( @sub ||= [] ) << cl end
end
And then use cl.const_get() to access actual values.
Btw, why does the super class need to know derived class's constants?
Kind regards
robert