Module: Instantiator

Defined in:
ext/linalg/extconf.rb

Overview

Instantiator

Class Method Summary collapse

Class Method Details

.instantiate(template) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'ext/linalg/extconf.rb', line 41

def self.instantiate(template)
   if template[:src] == template[:dst]
      raise "src is the same as dst" 
   end

   FileUtils.rm_f template[:dst]

   File.open(template[:src]) { |f|
      s = f.read
      template[:change].each_pair { |before, after|
         s.gsub!(%r!#{before}!m, after)
      }
      File.open(template[:dst], "w") { |out|
         out.puts s
      }
   }

   FileUtils.chmod 0444, template[:dst]
   $distcleanfiles = [] unless $distcleanfiles
   $distcleanfiles << template[:dst]
end