$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) の意味

Serverspecのbin/serverspec-initに書かれていた一行です。

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])

趣旨

$LOAD_PATH に実行中のファイルのディレクトリから ../lib の場所を追加する。 $LOAD_PATH に lib ディレクトリの位置を追加する。

$LOAD_PATH.unshift

unshiftメソッドは配列の先頭に引数として渡された要素を追加する。

File.join

与えられた引数をファイル区切り文字列で連結する。

File.dirname(FILE)

実行中のファイルのパスを返す。

*%w[.. lib]

%wはスペース区切りで与えられた文字列を配列に変換する。 *は配列を分解して別々の引数に変換する。

なぜ File.join で連結しているのか?

  • ファイル区切り文字の違うWindowsLinuxのどちらでも動作させるため。