1
加入有沒有辦法讓所有的常量(包括模塊和類),它們添加或重新定義在加載外部ruby文件和他們的方法和類或實例變量列表(陣列)?得到什麼時負載
加入有沒有辦法讓所有的常量(包括模塊和類),它們添加或重新定義在加載外部ruby文件和他們的方法和類或實例變量列表(陣列)?得到什麼時負載
這應該做的伎倆:
def all_constants_with_methods
constants = Object.constants.map { |sym| Object.const_get sym }
Hash[constants.map { |constant| [constant, (constant.instance_methods rescue [])] }]
end
before = all_constants_with_methods
load foo.rb
after = all_constants_with_methods
constants_added = after.keys - before.keys
methods_added = Hash[after.keys.map do |c|
[c, after[c] - (before[c] || [])]
end.reject do |_, v|
v.empty?
end]
有沒有辦法,我知道的知道,如果一個方法被重新定義,雖然。您可以輕鬆地將其擴展到類變量(使用class_variables
)和類實例變量(使用instance_variables
)。
謝謝。我也會考慮遞歸地應用這個來獲取常量內的常量。 – sawa