0

我有以下代码...

parser = AppleEpf::Parser.new('tmp/incremental/itunes20130410/application')
parser.process_rows { |app|
  Resque.enqueue(AddApp, app)
}

现在,该文件 ( tmp/incremental/itunes...) 中有超过 90,000 行。出于测试目的,最好限制process_rows块调用限制为几行(例如...100)。

有没有办法限制块中的循环?

作为参考,这是process_rowsgem 中的方法:

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
4

2 回答 2

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

于 2013-04-17T02:20:28.470 回答
1

我认为您正在寻找break关键字。

于 2013-04-17T00:24:32.133 回答