2009-07-12 27 views
2

我可以讓紅寶石​​或紅寶石使用最新的寶石,而不管它的來源嗎?使用最新的寶石版本,不管來源

正如this question更新中提到的,事實證明,ruby正在使用一個較舊的github gem(hmcgowan-roo 1.3.5)而不是最近安裝的新的rubyforge gem(roo 1.3.6)。

我的懷疑是,在「r」下查看之前,魔法像素(ruby或rubygems)在「h」之下。

我可以強制RubyForge的一個邊做

gem "roo" 

但有可能告訴紅寶石/ RubyGems的,我很高興爲使用hmcgowan,袋鼠小豆或使用,但我想要最新版?

回答

1

不,有不幸的是沒有辦法。就RubyGems而言,它們不是同一個gem,所以RubyGems無法自動確定哪個是最新版本。出於偏執狂的目的,如果沒有調用gem方法並且您安裝了相同庫的多個版本,那麼require行應該被認爲是非確定性的。

一般來說,你希望你的gem方法調用位於與你的需求不同的地方(這允許文件被延遲加載),所以最好有一個頻繁更新的文件一大堆的寶石方法調用,以確保你有正確的版本的一切。此外,在製作過程中,您通常不希望「給我最新版本」,因爲最新版本可能已經更改了其API或重命名了某些方法或類似內容,並且如果您尚未對其進行測試,則不會知道它是否會中斷。您應始終確保您使用的是每個第三方庫的特定的已知工作版本。

作爲一名圖書館作者,如果我要進行更改以破壞API的舊用法,我通常會向人們提供一兩個版本的提醒。然而,有時候人們並沒有更新一段時間,並被這個問題所困擾。幸運的是,大多數人都非常小心,並且展示了事物不要試圖直接更新庫中的庫,而不進行測試。 :-)

0

你可以使用gem方法來指定你想要的。

RubyGems Manual - Chapter 4

+0

像我的問題中的「gem'roo'」或使用一些額外的參數? – 2009-07-13 23:02:23

相關問題