Вы можете попробовать версии Ruby Facets для версии 1.8.x (http://facets.rubyforge.org/). Facets стал чем-то вроде беспорядка (примечание 404 на веб-сайте), но у меня установлена старая версия гема (1.8.54) ), который имеет некоторые из этих предстандартных изменений.
> gem install --version=1.8.54 facets
А потом:
gem 'facets', "~>1.8"
require 'enumerator'
require 'facets/core/enumerable/cartesian_product'
require 'facets/core/enumerable/permutation'
require 'facets/core/enumerable/each_combination'
[1, 2, 3].enum_for(:each_combination,2).to_a # note - only each form is available
[1, 2, 3].permutation(2)
[1, 2, 3].cartesian_product([1, 2, 3]) # note - rename
# Can't find .cycle equivalent after a quick search, maybe nothing there
Вы можете использовать псевдонимы некоторых из этих методов для обеспечения совместимости кода.
Извините, это не здорово.