2011-11-07 27 views
0

溫我運行nanoc compile在我的nanoc網站上一切都建立。當我運行bundle exec nanoc compile我收到此錯誤信息:怎麼辦?`nanoc compile`運行正常。 `捆綁exec納米編譯`不

RuntimeError: Error processing : /markup/post/ 
    undefined method `gsub!' for 2008-01-28 15:44:48 -0500:Time 

    === COMPILATION STACK: 

    (empty) 

    === BACKTRACE: 

    0. ./Rules:50:in `rescue in block in load' 
    1. ./Rules:43:in `block in load' 
    2. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/rule.rb:68:in `instance_eval' 
    3. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/rule.rb:68:in `apply_to' 
    4. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/compiler.rb:377:in `compile_rep' 
    5. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/compiler.rb:333:in `block in compile_reps' 
    6. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/compiler.rb:326:in `loop' 
    7. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/compiler.rb:326:in `compile_reps' 
    8. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/compilation/compiler.rb:85:in `run' 
    9. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/base/source_data/site.rb:57:in `compile' 
    10. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/commands/compile.rb:61:in `run' 
    11. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/command.rb:51:in `block in call' 
    12. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/error_handler.rb:42:in `handle_while' 
    13. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/error_handler.rb:23:in `handle_while' 
    14. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/command.rb:50:in `call' 
    15. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/command.rb:43:in `call' 
    16. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/commands/compile.rb:24:in `block in define' 
    17. /Users/mike/.gem/gems/cri-2.0.2/lib/cri/command.rb:255:in `call' 
    18. /Users/mike/.gem/gems/cri-2.0.2/lib/cri/command.rb:255:in `run' 
    19. /Users/mike/.gem/gems/cri-2.0.2/lib/cri/command.rb:272:in `run' 
    20. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli.rb:40:in `block in run' 
    21. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/error_handler.rb:42:in `handle_while' 
    22. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli/error_handler.rb:23:in `handle_while' 
    23. /Users/mike/.gem/gems/nanoc3-3.2.3/lib/nanoc3/cli.rb:37:in `run' 
    24. /Users/mike/.gem/gems/nanoc3-3.2.3/bin/nanoc3:12:in `<top (required)>' 
    25. /Users/mike/.gem/bin/nanoc3:19:in `load' 
    26. /Users/mike/.gem/bin/nanoc3:19:in `<main>' 

我跑rm -rf ~/.gembundle update得到一個乾淨的一套寶石。我還是會得到同樣的分歧。

我該怎麼辦?我認爲這是一個寶石/打包機問題?

UPDATE

nanoc的兩個版本,據我所看到的,相同的。但我仍然得到同樣的行爲。

.bioinformatics-zen (develop:-*--) : nanoc --version 
nanoc 3.2.3 (c) 2007-2011 Denis Defreyne. 
Running ruby 1.9.2 (2011-07-09) on x86_64-darwin10.8.0 with RubyGems 1.8.11 

.bioinformatics-zen (develop:-*--) : bundle exec nanoc --version 
nanoc 3.2.3 (c) 2007-2011 Denis Defreyne. 
Running ruby 1.9.2 (2011-07-09) on x86_64-darwin10.8.0 with RubyGems 1.8.11 

回答

1

默認YAML解析器已經改變。新的Psych,不會像舊的那樣解析事物,syck。您可以通過使用舊的解析器來解決此問題:

YAML :: ENGINE.yamler ='syck'

0

這不是gem/bundler問題,但更可能是不同nanoc版本中不同行爲的問題。以下命令返回什麼?

nanoc --version 
bundle exec nanoc --version 

,你得到的錯誤聽起來很耳熟,但不應該在最近版本的nanoc的發生(被前一段固定的,所以我想象的Gemfile包含舊版本nanoc的。)

HTH,

丹尼斯

+0

Hi Denis。感謝您發佈nanoc,它是一款優秀的軟件,我專門用於創建網站。爲了迴應你的回答,這兩個命令都使用了相同版本的nanoc。查看原始發佈的更新。 –

+0

嗨邁克爾。你能和我分享你的規則文件嗎?我想不出爲什麼會發生這種情況。 :( – ddfreyne

+0

嗨,邁克爾,還有一件事:你是否使用不同的YAML解析器,有/無捆綁器?有可能例如ActiveSupport干擾和改變YAML解析器的行爲,以便通常獨立的某些字符串現在被識別爲時間戳。 – ddfreyne