我有幾個文件定義嵌套模塊,說:獲得一個模塊下的所有類
文件1:
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。我有幾個類,我正在每個類上創建classNames的記錄器。在YAML配置中,需要再次指出所有定義的記錄器名稱以進一步配置。我正在嘗試使用通用代碼來提取模塊層次結構下的所有類並進行動態配置。
關於我的log4r方法(或任何更簡單的方法)的任何輸入也表示讚賞。