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.
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!