Antares Trader Blog

The universe at your fingertips

Sake and Rake Get in a Bar Fight

Wednesday

Sep 09, 2009

7:18 pm

The latest version of rake is not playing nicely with the sake. There is a lighthouse ticket that explains in more detail what is going on, but the summery is rake complaining can't convert true into String. There is a patch that need to be applied to sake. I had to do this by hand because my directory structure did not match the patch. It is a really easy one liner. Below I've listed both the error and the patch:

can't convert true into String

#!/text
->: sake dm:clone --trace
rake aborted!
can't convert true into String
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `expand_path'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/jfmiller28/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/local/ruby1.8/lib/ruby/gems/1.8/gems/sake-1.0.15/lib/sake.rb:282:in `run_rake'
/usr/local/ruby1.8/lib/ruby/gems/1.8/gems/sake-1.0.15/lib/sake.rb:188:in `run'
/usr/local/ruby1.8/lib/ruby/gems/1.8/gems/sake-1.0.15/bin/sake:5
/usr/local/ruby/bin/sake:19:in `load'
/usr/local/ruby/bin/sake:19

Patch

#!/text
--- sake.rb 2008-10-01 23:46:59.000000000 -0400
+++ /usr/local/lib/ruby/gems/1.8/gems/sake-1.0.15/lib/sake.rb   2008-10-01 23:38:42.000000000 -0400
@@ -563,7 +563,7 @@
     alias_method :sake_original_have_rakefile, :have_rakefile
     def have_rakefile(*args)
       @rakefile ||= ''
-      sake_original_have_rakefile(*args) || true
+      sake_original_have_rakefile(*args) || ''
     end
   end
 end

edit delete