读取文件的内容并在视图上显示行号

时间:2012-09-12 17:08:12

标签: ruby-on-rails ruby jruby

我正在尝试编写代码来读取用户输入的Ruby脚本并将其存储在临时文件中,然后将该临时文件传递给jruby -c temp_file以进行语法验证。

如果发现任何错误,我必须显示错误,以及用户使用行号输入的脚本。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

如果语法错误,您会看到失败的行号:

blah.rb:2: syntax error, unexpected '.'

所以只需将你的脚本拆分为换行符(\n),这就是你的错误行(当然是1索引)。

答案 1 :(得分:0)

如果我正确理解您要实现的目标,可以使用jruby-parser(安装gem install jruby-parser)与JRuby查找发生错误的行号:

require 'jruby-parser'

# Read script file into a String
script = File.open('hello.rb', 'r').read

begin
  JRubyParser.parse(script)
rescue Exception => e
  # Display line number
  puts e.position.start_line
  # Display error message
  puts e.message
end