動的に決定されるマウント ポイントがあり、ターゲット ボリュームで作業を行うための一連の絶対パスが提供されるプロジェクトに取り組んでいます。これらのファイルはまだ存在しないため、Pathname クラスを使用してファイル名の操作を処理しています。ただし、Pathname は、同じルートを持つパスを連結することに関しては、少し賢いことをしているようです。次の動作を観察しました。
p1 = Pathname.new('/foo/bar') # #<Pathname:/foo/bar>
p2 = Pathname.new('/baz/quux') # #<Pathname:/baz/quux>
p3 = p1 + p2 # #<Pathname:/baz/quux>
p4 = p1.join p2.relative_path_from(Pathname.new('/')) # #<Pathname:/foo/bar/baz/quux>
p5 = Pathname.new(p1.to_s.concat p2) # #<Pathname:/foo/bar/baz/quux>
したがって、p4 と p5 を使用すると、希望どおりの動作を得ることができますが、構造が少し不自然です。これを行うためのよりクリーンな方法はありますか?