2016年9月7日水曜日

[ruby] Tempfile

テンポラリファイルを作成するためのクラス
open()でテンポラリファイルを作成する。配列でプレフィックス、サフィックスを指定することができる。
ブロックを渡した場合はテンポラリファイルはそのブロック内で有効である。


  • 作られた オブジェクトはpathでファイル名を取り出すことができる。
  • ブロックから外れた時にはテンポラリファイルは自動で削除される。

$instructions.each{|insn|
  printf("--- TEST: %s", insn)
  Tempfile.open(['xxx', '.s']){|fp|
    fp.puts("\torg\t100h")
    fp.puts("\t" + insn)
    fp.puts("\tend")
    fp.flush
   
    # system($assembler + " " + fp.path)
    Open3.capture3($assembler, fp.path)
    hexname = fp.path.sub(%r{\.s$}, ".hex")
    File.open(hexname){|hexfile|
      $results << TestResult.new(insn.chop, hexfile.read)
    }
    File.unlink(hexname)
  }
}

0 件のコメント:

コメントを投稿