2013-10-09 69 views
-1

如何停止rake --tasks中止? 「拆分」已被棄用?如何解決'rake --tasks'錯誤:「rake aborted!undefined method`split'for nil:NilClass」

它輸出這個錯誤...(full trace

[rake --tasks] rake aborted! 
undefined method `split' for nil:NilClass 
/Users/Crimbo/.rvm/rubies/jruby-1.7.5/lib/ruby/gems/shared/gems/rake-10.1.0/lib/rake/task.rb:297:in `first_sentence' 
. 
. 
. 

線有問題... task.rbfull text

296 def first_sentence(string) 
297  string.split(/\.[ \t]|\.$|\n/).first 
298 end 
299 private :first_sentence 

紅寶石 '1.9.3',引擎:'jruby',engine_version:'1.7.5'|導軌(3.2.14)|耙子(10.1.0)

+2

據我所知'nil'從未有過'split'方法。 – zrl3dx

回答

1

拆分方法不推薦使用。但在你的情況下,字符串似乎是零。請檢查您傳遞給first_sentence方法的內容。

編輯:

這似乎是在耙寶石本身的問題。請檢查該網址,

https://github.com/jimweirich/rake/issues/220

但是,創業板店主認爲,這是有效的,並建議用戶使用rake -T --all代替。


補丁解決方案

如果你希望仍然使用rake --tasks,遵循什麼阿米特Thawait說...

使用to_s方法在task.rb,所以它不會拋出錯誤undefined method 'split' for nil:NilClass

def first_sentence(string) 
    string.to_s.split(/\.[ \t]|\.$|\n/).first 
end 
private :first_sentence 
+0

我不知道。我現在發現,如果我只執行'rake',它會返回'rake aborted! - 不知道如何構建任務'默認' - org/jruby/RubyArray.java:1613:在'each'...' – Crimbo

+0

是否可以將整個rake文件作爲編輯發佈在問題中? –

+0

對不起,我只是意識到你不能傳遞'rake'命令而沒有傳遞任何參數,所以請忽略我以前的評論 – Crimbo

1

作爲安全措施,你應該使用to_s方法,所以它不會拋出錯誤的undefined method 'split' for nil:NilClass

def first_sentence(string) 
    string.to_s.split(/\.[ \t]|\.$|\n/).first 
end 
private :first_sentence 
+0

這似乎修復它。我仍然不知道爲什麼我必須手動編輯它,看到它是耙寶石,我沒有看到任何人有同樣的問題。縱觀提交,該行是在5個月前添加的(2013年4月27日 - rake-10.1.0.beta.3) – Crimbo

相關問題