ruby であるスクリプトを書いてる時に、設定ファイルをホームディレクトリに置いてファイルオープンしようと以下のように書いたところエラーが出た。
irb(main):001:0> open('~/.hoge')
Errno::ENOENT: No such file or directory - ~/.hoge
ls ~/ してみると確かに対象のファイルはある。
調べてみると ~ はシェルが展開してくれるだけだから ruby からじゃ使えない的な事が書いてあった。
Ruby: opening files relative to home directory - Stack Overflowなのでホームディレクトリにあるファイルを扱う場合には以下のように書く。
irb(main):002:0> open(ENV['HOME']+'/.hoge')
=> #<File:/Users/ryomatsu/.hoge>
irb(main):003:0> open("#{Dir.home}/.hoge")
=> #<File:/Users/ryomatsu/.hoge>
これで読み込めた。
Sponsored Link