0

Wen I run nanoc compile on my nanoc site everything builds. When I run bundle exec nanoc compile I get this error message:

  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>'

I run rm -rf ~/.gem and bundle update to get a clean set of gems. I still get the same differences in out come.

What can I do? I assume this is a gem/bundler problem?

UPDATE

Both versions of nanoc are, as far as I can see, identical. Yet I still get the same behavior.

.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
Michael Barton
  • 8,868
  • 9
  • 35
  • 43

2 Answers2

1

The default YAML parser has changed. The new one, Psych, doesn't parse things the same as the old one, syck. You may be able to fix this by using the old parser:

YAML::ENGINE.yamler = 'syck'

Aaron Massey
  • 3,826
  • 1
  • 28
  • 26
0

It is not a gem/bundler problem, but more likely a problem with different behaviors in different nanoc versions. What do the following commands return?

nanoc --version
bundle exec nanoc --version

The error that you are getting sounds familiar to me, but should not occur in recent versions of nanoc (was fixed quite a while ago, so I imagine that the Gemfile contains an old version of nanoc.)

HTH,

Denis

Denis Defreyne
  • 2,213
  • 15
  • 18
  • Hi Denis. Thank you for releasing nanoc it is an excellent piece of software which I use exclusively for creating websites. In response to your answer both commands are using the same version of nanoc. See update to the original posting. – Michael Barton Nov 08 '11 at 18:25
  • Hi Michael. Can you share your Rules file with me? I can't think of a reason why this would happen. :( – Denis Defreyne Nov 13 '11 at 11:47
  • Hi Michael, one more thing: are you using different YAML parsers with/without bundler? It is possible that e.g. ActiveSupport interferes and changes the behavior of the YAML parser so that certain strings which are normally left alone are now recognised as timestamps. – Denis Defreyne Nov 14 '11 at 07:37