Shoyan blog

Rubyでセパレーターを意識せずにコーディングする方法

ファイルのパスを生成する際にセパレーターを意識しなくてはならず、どうにもいけていないコードがあります(ありますというか自分が量産していました)。
以下のようなコードです。

1
path = "#{path1}/{$path2}"

セパレーターを意識せずコーディングできないものかと調べたところ、File.joinを使えばよしなにやってくれることがわかりました。
File.joinを使えばセパレーターを指定する必要はありません。

1
2
File.join("hoge", "moge")
=> "hoge/moge"

File.joinは正しいであろうパスのフォーマットに補正してくれるため、//hogeのようなパスが生成されることもありません。

1
2
File.join("hoge", "moge/", "/fuga")
=> "hoge/moge/fuga"

パラメーターが配列でもよしなにやってくれます。

1
2
File.join(%w(hoge moge/ fuga))
=> "hoge/moge/fuga"

地味ですが、これでセパレーターの悩みから解放されて幸せになれます。

参考リンク

Comments