2013-03-01 51 views
0
可枚舉的

懶惰評估已列入紅寶石2.0特定的Ruby模塊的加載: http://railsware.com/blog/2012/03/13/ruby-2-0-enumerablelazy/我如何限制基於Ruby的版本

我想包括在應用程序中我這個符號(.lazy)寫作,但運行任何版本的Ruby的人。但是,如果這個人運行的是Ruby 2.0,我想只讓本地實現接管。

這裏有一個項目,我想作爲一個模板可能使用: https://github.com/yhara/enumerable-lazy/blob/master/lib/enumerable/lazy.rb

我怎麼會只有紅寶石的活動版本是< 2.0加載此模塊?

回答

1

請注意,yhara的版本已過時。你應該使用我的backports寶石。它通過MRI的測試lazy

require 'backports/2.0.0/enumerable/lazy' 
(1..42).lazy... # => works in all Rubies 

只需使用條件像Enumerable.method_defined?(:lazy)知道你是否應該把它定義或沒有(像我在做backports

+0

啊!完美,謝謝。 – 2013-03-01 19:16:48

+0

@BobBriski:順便說一句,我正在分離每個backports,所以你可以只需要懶惰... – 2013-03-02 08:18:16