对Ruby 2.0中包含了对enumerables的懒惰评估: http://railsware.com/blog/2012/03/13/ruby-2-0-enumerablelazy/
我想在我正在编写的应用程序中包含这种表示法(.lazy
),但是对于运行任何版本Ruby的人来说。但是,如果那个人正在运行Ruby 2.0,我想让本机实现接管。
这是我可能用作模板的项目: https://github.com/yhara/enumerable-lazy/blob/master/lib/enumerable/lazy.rb
如果Ruby的活动版本是<我将如何加载此模块? 2.0
答案 0 :(得分:1)
请注意,yhara的版本已过时。你应该使用backports
gem中的那个。它通过了MRI lazy
的测试:
require 'backports/2.0.0/enumerable/lazy'
(1..42).lazy... # => works in all Rubies
只需使用像Enumerable.method_defined?(:lazy)
这样的条件来了解您是否应该定义它(就像我在backports
中所做的那样)