У меня есть несколько файлов, определяющих вложенные модули, говорят:Получение всех классов, определенных в рамках модуля
File1:
module A
module B
class B1
class B1Error < Exception ; end
end
end
end
Файл 2:
module A
module B
class B2
class B2Error < Exception ; end
class B2_inner
end
end
end
end
Мне нужен способ, чтобы получить все классов, определенных в данном модуле.
def get_all_classes_under_module_hier(hier)
???
end
get_all_classes_under_module_hier(A::B)
#=> A::B::B1, A::B::B1::B1Error, A::B::B2, A::B::B2::B2Error, A::B::B2::B2_inner.
Как я могу достичь цели?
Причина, по которой мне это нужно: я пытаюсь использовать log4r. У меня есть несколько классов, и я создаю журнал с именами классов по каждому из них. В конфигурации YAML необходимо снова указать все определенные имена журналов для дальнейшей настройки. Я пытаюсь использовать общий код, чтобы вытащить все классы в иерархии модулей и иметь динамическую конфигурацию.
Любые данные, касающиеся моего подхода к log4r (или любого более простого способа), также приветствуются.