2007-10-27 [長年日記]

Ruby-mswin32でRDtoolを使う

Ruby-mswin32でRDtoolを使うときに、普通にインストールしただけだと実行しているドライブのルートにtmpというディレクトリがないと、実行時にエラーになってしまいます。以下のようなパッチでDir.tmpdirを使うようにすると環境変数を見てくれるようになります。ちなみに参照される環境変数は、TMPDIR, TMP, TEMP, USERPROFILEのようで、何も設定されていないと%WINDIR%\Tempあたりになります。

--- rd/tree.rb.orig     2007-10-27 14:05:41.250750000 +0900
+++ rd/tree.rb  2007-10-27 14:00:38.407000000 +0900
@@ -2,6 +2,7 @@
 require "rd/filter"
 require "rd/document-struct"
 require "rd/version"
+require "tmpdir"
 
 module RD
 
@@ -17,7 +18,7 @@
       VERSION
     end
 
-    TMP_DIR = '/tmp'
+    TMP_DIR = Dir.tmpdir
 
     def Tree.tmp_dir
       TMP_DIR
[]