我正在開發一個項目,其中有一個動態確定的安裝點,並提供了一組絕對路徑以在目標捲上進行工作。由於這些文件還不存在,我正在使用Pathname類來處理文件名操作。然而,當涉及到連接具有相同根的路徑時,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,我能夠得到我想要的行爲,但結構有點做作。有沒有更乾淨的方法來做到這一點?
不應該爲了跨平臺的原因分別添加每個目錄 - 「bin」+「ruby」。 – shabunc
@shabunc:這將是一個更好的習慣,我只是引用了文檔。 –