我試圖測試我的rails應用程序JavaScript使用jruby 1.3.1,迅速和culerity。 應用程序本身下紅寶石1.8.7 + PHUSION客運運行(和運行正常,SANS測試:))仿真each_slice無紅寶石塊<1.8.7
安裝的一切明智的工作正常,但我的應用程序使用some_enumerable.each_slice(10)
到更大的陣列分裂成更小的子陣列,每組10個elelents 。
Celerity需要jruby和jruby只是紅寶石1.8.6兼容,因此不支持無塊each_slice。
所以我想定義initalizer這增加了這個功能,如果RUBY_PLATFORM == 「Java」 的(或RUBY_VERSION < 1.8.7
)
這遠我得到了(原因解散的代碼):
if true #ruby 1.8.6
module Enumerable
alias_method :original_each_slice, :each_slice
def each_slice(count, &block)
# call original method in 1.8.6
if block_given?
original_each_slice(count, block)
else
self.enum_for(:original_each_slice, count).to_a
end
end
end
end
這段代碼顯然不起作用,我非常感謝有人指點我的解決方案。
謝謝!
更新: 解決方案感謝sepp2k指着我我的錯誤:
if RUBY_VERSION < "1.8.7"
require 'enumerator'
module Enumerable
alias_method :original_each_slice, :each_slice
def each_slice(count, &block)
if block_given?
# call original method when used with block
original_each_slice(count, &block)
else
# no block -> emulate
self.enum_for(:original_each_slice, count)
end
end
end
end
DOH! :)應該先搜索一下 – thenoseman