Question

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
Was it helpful?

Solution

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'

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top