I was trying to add cucumber to a project which is using rails2.3.4 (which is vendored). The script/generate cucumber step is failing.
I first thought that this was a problem specific to cucumber but it appears that script/generate is broken in general:
$ script/generate model foo --backtrace undefined method `exists' for #<ActiveSupport::BufferedLogger:0x000001017500d8> /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/commands.rb:321:in `directory' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/manifest.rb:47:in `block in send_actions' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/manifest.rb:46:in `each' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/manifest.rb:46:in `send_actions' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/manifest.rb:31:in `replay' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/commands.rb:42:in `invoke!' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/rails_generator/scripts.rb:31:in `run' /Users/rick/fifthrail/legalpm/vendor/rails/railties/lib/commands/generate.rb:6:in `<top (required)>' script/generate:3:in `require' script/generate:3:in `<main>'
The problem is that the logger in the generator doesn't seem to be the right type here's the directory method in railsties/rails_generator/commands.rb which is failing:
def directory(relative_path) path = destination_path(relative_path) if File.exist?(path) logger.exists relative_path else logger.create relative_path # ...
Instead of an ActiveSupport::BufferecLogger, logger seems like it should be something else, but I haven't yet been able to figure out where it's set and what has gone wrong.
Any ideas?