# File lib/rantly/generator.rb, line 68 def generate(n,limit_arg,gen_block,&handler) limit = n * limit_arg nfailed = 0 nsuccess = 0 while nsuccess < n raise TooManyTries.new(limit_arg*n,nfailed) if limit < 0 begin val = self.instance_eval(&gen_block) rescue GuardFailure nfailed += 1 limit -= 1 next end nsuccess += 1 limit -= 1 handler.call(val) if handler end end