2010-09-13 90 views
1

我在使用Ruby 1.9.2(Yarv)。Ruby 1.9.2是否向後兼容1.8.7?

當我安裝寶石,我只是使用「寶石安裝」。

我怎麼知道它們寫入的是哪個Ruby版本:1.8.7,1.9.1或1.9.2?

如果我使用最新版本,並且安裝了1.8.7版本的gem,那麼那個gem不起作用?

例如,尺碼寶石似乎不適用於1.9.2,但與1.8.7完美配合。

你如何檢查每個寶石使用的版本?

有人能爲我啓發這個話題。

回答

1

有一個網站回答這個問題:「它是Ruby 1.9嗎?」

http://isitruby19.com/

它看起來並不像有人已經報道尺度尚未: http://isitruby19.com/yardstick

你可能是第一位的,報告說,它在1.9打破。

+0

還有另一個網站。你知道我說的是哪一個嗎? – 2010-09-13 20:32:48

+0

您是否想過ru​​bygems.org,以前是a.k.a. gemcutter.org? – 2010-09-13 20:36:57

+0

railsplugins.org? – 2010-09-13 23:40:15

2

不幸的是,沒有確定的方法來檢查,因爲有這麼多的版本和變體或Ruby解釋器(Ruby,JRuby,Iron Ruby)和系統平臺。另外一個純Ruby的gem可能無法在所有平臺上使用相同的interpereter verson,因爲可以使用某些操作系統特定的屬性。

因此,您必須信任他/她提供的作者或文檔。另一種確保你的平臺適合創業板的方法就是將測試內容附在創業板上 - 每篇寫得好的創業板都應該有這樣的內容。

也有小技巧:如果文件中包含

# -*- encoding: utf-8 -*- 

然後作者日期可能發展時考慮到1.9.x的寶石。

+0

文件也可能包含'#encoding:utf-8'字符串。 – 2010-09-13 20:02:37

+0

實際上它可能是「encoding:utf8」(沒有連字符) – fijiaaron 2012-09-12 16:21:20