(wat-aro)

生きてます

Pathname#joinの不思議な挙動

空のPathname同士をjoinした時に期待と違う挙動があった。

 $ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]

期待していたのは次の動作。

path = Pathname.new('')         # => #<Pathname:>
path.join(path)                 # => #<Pathname:>

でも実際はこうなっていた。

path = Pathname.new('')         # => #<Pathname:>
path.join(path)                 # => #<Pathname:.>

空のPathnameと空のPathnameをjoinしてるんだから空のPathnameが欲しかったのに、 . がどこからか出てきてる。
なぜこうなっているんだろう。