0
我试图避免添加冗余路径到红宝石的LOAD_PATH
。这不是一个非常复杂的任务,我只是想知道是否有一个更清晰的方法,然后我想出了。有没有更好的方法来确保ruby的LOAD_PATH不会搞砸?
这是我目前的解决方案,目前的情况是:
def add_loadpath(new_path)
included = $LOAD_PATH.inject(false) do |acc,path|
acc || new_path == File.expand_path(path)
end
$LOAD_PATH.unshift new_path unless included
end
然后,而不是做平常$LOAD_PATH.unshift SOME_PATH
的你会打电话
add_loadpath SOME_PATH
这是为了避免出现问题,当负载路径包括两个路径指向相同的文件夹但不是相同的字符串。例如foo/../bar
和bar
你说得对,大部分的'$ LOAD_PATH'不与相对路径污点,但时间没有什么能够阻止某人从输入这样的东西,'LOAD_PATH.unshift'../../ bin''并打破这个惯例。我试图消除这种可能性,并处理相对路径的可能性。 – 2013-02-10 07:09:39