我有以下代码......
parser = AppleEpf::Parser.new('tmp/incremental/itunes20130410/application')
parser.process_rows { |app|
Resque.enqueue(AddApp, app)
}
现在,该文件(tmp/incremental/itunes...
)中有超过90,000行。出于测试目的,将process_rows
块调用限制为几行(比如说... 100)会很好。
有没有办法限制块中的循环?
供参考,这是gem中的process_rows
方法:
def process_rows(&block)
File.foreach( @filename, RECORD_SEPARATOR ) do |line|
unless line[0].chr == COMMENT_CHAR
line = line.chomp( RECORD_SEPARATOR )
block.call( line.split( FIELD_SEPARATOR, -1) ) if block_given?
end
end
end
答案 0 :(得分:2)
您可能正在寻找break
命令。
在任何Ruby循环中,您可以将此指令停止执行并返回某些(或不返回),因此您可以像以下一样使用它:
loop do
do_something_great
break if some_condition
end
控制你的执行。
随时欢迎指向ruby-doc的链接:http://ruby-doc.org/docs/keywords/1.9/Object.html#method-i-break
答案 1 :(得分:1)
我认为您正在寻找break
关键字。