0

Ruby 2.0 中已包含对枚举的惰性求值: 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,我将如何仅加载此模块?

4

1 回答 1

1

请注意,yhara 的版本已过时。你应该使用我的backports宝石中的那个。它通过了 MRI 的测试lazy

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

只需使用一个条件Enumerable.method_defined?(:lazy),例如知道您是否应该定义它(就像我在 中所做的那样backports

于 2013-03-01T19:03:46.703 回答