Ruby でディレクトリ名を連結して相対パスを得たい時は File.join より Pathname を使った方がよい

Rubyディレクトリ名を連結したい場合によく使われるメソッドに File.join がある。
File.join において、空文字列 '' は特に何も影響を与えない '.' と似たようなものだと思いがちである。

File.join('a','','b') # => "a/b"

しかし、第一引数が空文字列 '' の場合、root ディレクトリからの絶対パスになってしまう。

File.join('','a','b') # => "/a/b"

要は '/' を間に入れて単純に連結しているだけであり、Ruby のリファレンスにもそう書いてある。(参照)
うっかり第一引数に空文字を渡して root ディレクトリからのパスが現れるのを防ぎたい場合は、Pathname を使うとよい。

require 'pathname'

Pathname('a').join('','b').to_s # => "a/b"
Pathname('').join('a','b').to_s # => "a/b"