我有以下buildr构建文件段:Buildr红宝石错误,不能转换的Rake :: FileTask转换成String
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是1.4.4,在Linux安装在两台machnies安装脚本。
- 机1:32位的Debian,红宝石1.8.7(2008-08-11 PATCHLEVEL 72)[1486-的linux]
- 机2:64位的Ubuntu,红宝石1.8.7(2010-01-10 PATCHLEVEL 249)[x86_64-linux]
机器1编译所有文件。 2机上失败的MARK
-ed地方,
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而不是字符串..但是怎么来的一台机器接受它,其他的呢?是否有强制转换为字符串?
一些建筑物痕迹附于http://pastebin.com/nf4HiYx9。
谢谢。
我计算过,加.to_s帮助,一切都很好。但是我可以欣赏一个答案,告诉我们隐含的转换丢失了,为什么它是好的(如果是的话)。 – ron 2011-01-20 19:23:15