임 jruby 1.3.1, celerity 및 culerity를 사용하여 내 레일 애플리케이션 자바 스크립트를 테스트하려고합니다. 응용 프로그램 자체가 루비 1.8.7 + phusion 여객에서 실행 (미세, 산세 시험 : 실행)루비에 블록이없는 each_slice의 에뮬레이션 <1.8.7
모든 설치 현명한 잘 작동을하지만 내 응용 프로그램은 10 elelents 각각 작은 부분 배열에 큰 배열을 분할 some_enumerable.each_slice(10)
를 사용 .
속도 요구 사항 jruby 및 jruby는 루비 1.8.6과 호환되므로 블록없는 각 슬라 이스를 지원하지 않습니다.
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
: RUBY_PLATFORM == "자바"(또는 RUBY_VERSION < 1.8.7
)
이것은 지금까지 내가 (원인의 소멸 코드)를 가지고있는 경우
그래서 나는이 기능을 추가하는 initalizer 정의에 대해 생각하고 이 코드는 분명히 작동하지 않으며 나는 해결책을 제시하는 누군가를 정말로 고맙게 생각합니다.감사합니다.
업데이트 : 솔루션 덕분에 내 오류에 저를 가리키는 위해 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을 (BTW
require 'enumerator'
하는 것을 잊지 마세요)! :) 먼저 검색 했어야합니다. – thenoseman