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
これは、同じフォルダーを指しているが同じ文字列ではない 2 つのパスがロード パスに含まれている場合の問題を回避するためです。たとえばfoo/../bar
、bar