在ruby中以递归方式将目录添加到$ LOAD_PATH的最快方法是什么?

时间:2010-04-06 17:58:51

标签: ruby

我想将vendor / gems / gems / ** / lib中的所有内容打到加载路径上。我有办法做到这一点,但它只是感觉笨重。 现在,我是通过以下方式做到的:

base = File.expand_path(File.join(File.dirname(__FILE__), "..", "vendor", "gems", "gems"))
libs = File.join(base, "**", "lib")
Dir.glob(libs) { |lib| $LOAD_PATH.unshift lib}

我确信有更好的方法可以做到这一点。

1 个答案:

答案 0 :(得分:2)

我认为通过File设置基本路径很好。但是您不需要遍历目录列表就可以将它们放入$LOAD_PATH。您可以使用unshift并展开数组。

libs = File.expand_path("../../vendor/gems/**/lib", __FILE__)
$LOAD_PATH.unshift *Dir.glob(libs)