91 lines
2.0 KiB
Ruby
Executable File
91 lines
2.0 KiB
Ruby
Executable File
|
|
class Replacer
|
|
@@typehash = {
|
|
'char' => "____",
|
|
'int' => "_____",
|
|
'double' => "______",
|
|
'string' => "_______"}
|
|
|
|
@@regex = /^(\s*expectThat\("[^"]*",\s*)([^,]*)(,.*\);\s*)$/
|
|
@@c_style_cast = /^\s*(\w+\()(.*)(\))\s*$/
|
|
def dosomething
|
|
"hallo"
|
|
end
|
|
def doit(dirname)
|
|
puts "DOING"
|
|
puts dirname
|
|
Dir.chdir(dirname)
|
|
aboutfiles = Dir.glob("About*.cpp")
|
|
puts aboutfiles
|
|
tmpdir = "temp"
|
|
Dir.mkdir(tmpdir) unless Dir.exist?(tmpdir)
|
|
aboutfiles.each do | file |
|
|
newfilename = File.join(tmpdir,file)
|
|
File.open(newfilename,'w') do | f2 |
|
|
File.open(file,'r') do | f |
|
|
f.each_line do | content |
|
|
newcontent = replace_line(content)
|
|
f2.puts(newcontent)
|
|
end
|
|
end
|
|
end
|
|
File.delete(file)
|
|
File.rename(newfilename,file)
|
|
end
|
|
end
|
|
def replace_line(line)
|
|
m = @@regex.match(line)
|
|
unless m
|
|
return line
|
|
else
|
|
puts line
|
|
return "" + m[1] + replace_expected(m[2])+m[3]
|
|
end
|
|
end
|
|
def replace_expected(expected_value)
|
|
cast = ""
|
|
tail = ""
|
|
|
|
m = /(\(.*\))?.*/.match(expected_value)
|
|
if m[1]
|
|
cast = m[1]
|
|
else
|
|
m = @@c_style_cast.match(expected_value)
|
|
if m
|
|
cast = m[1]
|
|
expected_value = m[2]
|
|
tail = m[3]
|
|
end
|
|
end
|
|
|
|
case expected_value
|
|
when /true/
|
|
return cast + "________" + tail
|
|
when /false/
|
|
return cast + "_________" + tail
|
|
when /_+/
|
|
return expected_value
|
|
when /\d+\.\d+/
|
|
return cast + @@typehash['double'] + tail
|
|
when /\d+/
|
|
return cast + @@typehash['int'] + tail
|
|
when /".*"/
|
|
return cast + @@typehash['string'] + tail
|
|
when /'\w'/
|
|
return cast + @@typehash['char'] + tail
|
|
default
|
|
return cast + expected_value + tail
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
|
|
# the definition from Assert.h
|
|
#define 'x'
|
|
#define 42
|
|
#define 42.42
|
|
#define "42"
|
|
|
|
|