2011-01-20 9 views
2

にレーキ:: FileTaskを変換することができない私は、次のbuildrのビルドファイルのセグメントがあります。Buildrルビーエラーは、文字列

require "buildr/protobuf" 

.... 

define "protobuf-stuff" do 
    pbs = protoc(
     Dir[_("pbsrc/some/pkg/*.proto")], { 
     :include => [_("pbsrc")], 
     }) 

    comp = compile.from(pbs).with(PROTOBUF_LIB) # MARK 
    package :jar 
end 

BuildrをLinuxは2 machniesでスクリプトをインストールしてインストールし、1.4.4です。

  • マシン1:Debianの32ビット、ルビー1.8.7(2008-08-11パッチレベル72)のi486-のLinux]
  • マシン2:Ubuntuの64ビット、ルビー1.8.7(2010年1月10日パッチレベル249)[x86_64-linux]

マシン1はすべてのファイルをコンパイルします。マシン2は

Buildr aborted! 
TypeError : can't convert Rake::FileTask into String 
/usr/lib/ruby/gems/1.8/gems/buildr-1.4.4/lib/buildr/core/application.rb:414:in `raw_load_buildfile' 
/usr/lib/ruby/gems/1.8/gems/buildr-1.4.4/lib/buildr/core/application.rb:218:in `load_buildfile' 
/usr/lib/ruby/gems/1.8/gems/buildr-1.4.4/lib/buildr/core/application.rb:213:in `load_buildfile' 

で今、私はpbsがないFileTaskではなく、文字列..しかし、どのように来る1台のマシンがそれを受け入れ、他のことを見ることができ、MARK -ed場所で失敗しますか? Stringへの強制変換はありますか?

http://pastebin.com/nf4HiYx9にはいくつかのビルドトレースが添付されています。

ありがとうございます。

+0

私は.to_sを追加することができますし、すべてがうまくあることを考え出し。しかし、私は暗黙の変換がどこで失われたのか、なぜそれが良いのかは分かります。 – ron

答えて

2

私は、.to_sを追加するとすべてがうまくいくと思いました。しかし、私は暗黙の変換がどこで失われたのか、なぜそれが良いのかは分かります。

/私の以前のコメントから/

0

pastetraceのstacktraceは、ここに貼り付けられたstacktraceと、私が見るものとは非常に異なっています。

protocメソッドはどこに定義されていますか?それはBuildrコアの一部ですか?

エラーが発生した行が "if File.exist?path"であるとすれば、あるマシンでは失敗し、もう一方では失敗した理由はRubyのバージョンかもしれません。パスはStringであるはずですが、あるケースではStringに変換されますが、もう一方では変換されない可能性があります。

protoc(...)、protoc(...)。map(&:to_s)を呼び出した後、全体的な修正が呼び出されます。

私はこれが助けてくれることを願っています。