1

I'm working on an Ember.js project (around 0.9.8.x, if it matters) which was built with ember-skeleton. I recently made the mistake of haphazardly running bundle update and my version of rake-pipeline jumped from 0.6.0 to 0.8.0, and I get this error when I make a request of my development server:

NoMethodError at /
undefined method `invoke' for "Assetfile":String

The specific error comes here:

~/.rvm/gems/ruby-1.9.3-p125@project/bundler/gems/rake-pipeline-ee992cbcda51/lib/rake-pipeline/middleware.rb: in call, line 32

but I would guess the real start of it is in the first few lines of config.ru:

require 'rake-pipeline'
require 'rake-pipeline/middleware'
use Rake::Pipeline::Middleware, 'Assetfile'

The stack trace doesn't appear to touch my code at all; in fact, if I understand this error properly, it doesn't even touch my Assetfile.

Is this a bug, or did something change in rake-pipeline? Will it be easier to downgrade rake-pipeline (if so, to where?) or is there something I can fix in config.ru?

ETA: I'm hopping back in the rake-pipeline project history a few dozen commits at a time. Going back to the end of October, I get different errors:

TypeError at /
can't convert Fixnum into String

~/.rvm/gems/ruby-1.9.3-p125@project/bundler/gems/rake-pipeline-986129d378a6/lib/rake-pipeline/manifest_entry.rb:9:in `parse'

When I hop all the way back to April 2012 I get a working version. So my project is back in business, but I'd love to know what blew up.

Community
  • 1
  • 1
pjmorse
  • 9,204
  • 9
  • 54
  • 124

1 Answers1

2

The problem is that rake-pipeline now expects a Rake::Pipeline::Project object as an argument, not a string. Replacing the third line of that config.ru with this makes it work:

use Rake::Pipeline::Middleware, Rake::Pipeline::Project.new('Assetfile')

Thanks, GitHub!

pjmorse
  • 9,204
  • 9
  • 54
  • 124