我的环境:
jRuby-1.6.5
Rails 2.3.8宝石:
(2.3.8)
使用jRuby-1.6.5和gem,得到了以下问题:
从应用程序的根执行度量。
在解析app和lib文件夹中的所有ruby文件后,命令行输出以下内容:
NoMethodError: undefined method `[]' for nil:NilClass
initialize at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:232
get_elements at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:169
initialize at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:130
assemble_files at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:111
each at org/jruby/RubyArray.java:1612assemble_files at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:109
analyze at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:27
send at org/jruby/RubyKernel.java:2093
generate_report at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/base/generator.rb:130
each at org/jruby/RubyArray.java:1612
generate_report at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/base/generator.rb:128
add at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/base/report.rb:60
run_metric_fu at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/lib/metrical.rb:51
each at org/jruby/RubyArray.java:1612
run_metric_fu at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/lib/metrical.rb:51
run at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/lib/metrical.rb:18
(root) at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/bin/metrical:4
load at org/jruby/RubyKernel.java:1063
(root) at c:\jruby-1.6.5\bin\metrical:19问题在哪里,我不知道,只是想知道如何绕过它,或者可能避免它,因为这是相当恼人的,因为我的团队看不到给定代码的度量标准。
提前谢谢你。
发布于 2012-01-07 04:24:30
让我们看一看堆栈跟踪。它告诉你很多。
在堆栈的顶部,您可以看到saikuro.rb:232。以下是:
对[]的方法调用只有一个,所以假设line.match(TYPE_REGEX)是nil是安全的。为什么会这样呢?嗯,我们不知道。但是,从堆栈的角度来看,我们相当肯定是在阅读@file_handle for Saikuro::SFile时遇到了这种情况。我们没有找到与TYPE_REGEX=/Type:(.*) Name/匹配的行。
知道Saikuro::SFile.new得到的参数将是非常有指导意义的。尝试找到它,并检查文件内容。
https://stackoverflow.com/questions/8569198
复制相似问题