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?