我们在ruby 1.9.1on rails项目中使用了flog,在处理一些代码时,它停止引发异常:

ruby/1.9.1/racc/parser.rb:349:in `on_error':  (Racc::ParseError)
parse error on value nil (tNL)

我以前遇到过与flog不识别新ruby sintax相关的问题,但现在找不到问题所在。
任何关于知道问题根源的帮助都是受欢迎的,我找不到一种方法来知道flog在哪条线上失败了。

最佳答案

问题在于我说的语法。
因此,当定义方法时,在其他变量之前有默认值的变量时,就会出现此问题。

def par1, par2='false', par3
  ...
end

这是Ruby1.9.x中的有效代码,但在以前的Ruby版本中不是,而且由于Flog没有Ruby1.9.x语法支持,它将引发一个异常。和其他不兼容的语法一样。
因此,如果您使用的是flog,就必须使用ruby 1.8语法。

10-07 15:48