Windowsでrakeでrdocを自動生成したいとき

Windowsでrakeでrdocを自動生成しようとして、なかなかうまくいかなかったのでメモ。


普通にRakefileをこんな感じで書くと。。

RDOC = "rdoc"

task :default => "doc"

task "doc" do
  sh "#{RDOC} *.rb --main KCSV -c sjis"
end


こんな感じのエラーになってしまう。

C:\ruby\kcsv>rake
(in C:/ruby/kcsv)
rdoc kcsv.rb --main KCSV -c sjis
rake aborted!
undefined method `exitstatus' for nil:NilClass
C:/ruby/kcsv/rakefile:6
(See full trace by running task with --trace)


色々調べてみた結論。
→Windowsでrakeでバッチファイルを実行させるときは、".bat"を付けないといけない。


というわけで書き直して再度rakeしてみると、、、

RDOC = "rdoc.bat"

task :default => "doc"

task "doc" do
  sh "#{RDOC} kcsv.rb --main KCSV -c sjis"
end


見事成功!
なかなか気付かんもんですなぁ。。気付けて良かったけど疲れた。。

C:\ruby\kcsv>rake
(in C:/ruby/kcsv)
rdoc.bat kcsv.rb --main KCSV -c sjis

 kcsv.rb: cccc....c.....
Generating HTML...

Files:   1
Classes: 5
Modules: 0
Methods: 9
Elapsed: 0.937s