class Autorake::Builder::TmpFiles

Attributes

src[R]

Public Class Methods

new(source) click to toggle source
# File lib/autorake/compile.rb, line 69
def initialize source
  @plain = "autorake-tmp-0001"
  begin
    @src = "#@plain.c"
    File.open @src, File::WRONLY|File::CREAT|File::EXCL do |c|
      c.puts source
    end
  rescue Errno::EEXIST
    @plain.succ!
    retry
  end
end
open(source, keep = nil) { |i| ... } click to toggle source
# File lib/autorake/compile.rb, line 58
def open source, keep = nil
  i = new source
  yield i
ensure
  i.cleanup unless keep
end

Public Instance Methods

bin() click to toggle source
# File lib/autorake/compile.rb, line 84
def bin ; @bin = "#@plain"     ; end
cleanup() click to toggle source
# File lib/autorake/compile.rb, line 86
def cleanup
  File.delete @bin if @bin and File.exist? @bin
  File.delete @obj if @obj and File.exist? @obj
  File.delete @cpp if @cpp and File.exist? @cpp
  File.delete @src
end
cpp() click to toggle source
# File lib/autorake/compile.rb, line 82
def cpp ; @cpp = "#@plain.cpp" ; end
obj() click to toggle source
# File lib/autorake/compile.rb, line 83
def obj ; @obj = "#@plain.o"   ; end