2013-03-01 2 views
0

Ленивая оценка перечислимых была включена в Рубине 2.0: http://railsware.com/blog/2012/03/13/ruby-2-0-enumerablelazy/Как ограничить загрузку конкретного модуля Ruby, основанный на версии Ruby,

Я хотел бы включить эту запись (.lazy) в прикладной I пишут, но для людей, которые запускают любую версию Ruby. Однако, если этот человек работает с Ruby 2.0, я бы просто хотел, чтобы нативная реализация взяла верх.

Вот проект, я бы, вероятно, использовать в качестве шаблона: https://github.com/yhara/enumerable-lazy/blob/master/lib/enumerable/lazy.rb

Как бы я только загрузить этот модуль, если активная версия Рубина < 2,0?

ответ

1

Обратите внимание, что версия yhara устарела. Вы должны использовать его в моем драгоценном камне backports. Она проходит тест МРТ для lazy:

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

Просто используйте условие как Enumerable.method_defined?(:lazy) знать, если вы должны определить его или нет (как я в backports)

+0

Ahh! Отлично спасибо. –

+0

@BobBriski: Кстати, я работаю над изолированием каждого backports, поэтому вам может потребоваться просто ленивый ... –

 Смежные вопросы

  • Нет связанных вопросов^_^