#!/usr/bin/env ruby
#
# Copyright (C) 2003-2005 Kouichirou Eto
#     All rights reserved.
#     This is free software with ABSOLUTELY NO WARRANTY.
#
# You can redistribute it and/or modify it under the terms of 
# the GNU General Public License version 2.
#

require "pp"

def nu_replace_line(line)
  return line.gsub(/require \"t\/test\"/) {
    "require \"qwik\/test-common\""
  }
end

def nu2replace_line(line)
  return line.gsub(/class TC\_/) {
    "class Test"
  }
end

def nu3replace_line(line)
  return line.gsub(/if \$debug/) {
    "if defined?($debug) && $debug"
  }
end

def nu4replace_line(line)
  return line.gsub(/assert_wiki/) {
    "ok_wi"
  }
end

def nu5replace_line(line)
  return line.gsub(/assert_in\(/) {
    "ok_in("
  }
end

def nu6replace_line(line)
  return line.gsub(/assert_xpath/) {
    "ok_xp"
  }
end

def nu7replace_line(line)
  return line.gsub(/assert_equal/) {
    "ok_eq"
  }
end

def nu8replace_line(line)
  return line.gsub(/require \"test\/unit\"/) {
    "require \"qwik\/testunit\""
  }
end

def nu9replace_line(line)
  return line.gsub(/assert_xml/) {
    "ok_in"
  }
end

def nu10replace_line(line)
  return line.gsub(/require \"qwik\/memory\"/) {
    "require \"qwik\/server-memory\""
  }
end

def nu11replace_line(line)
  return line.gsub(/include TestQuickMLModule/) {
    "include TestModuleML"
  }
end

def nu12replace_line(line)
  return line.gsub(/include TestMLSessionModule/) {
    "include TestModuleML"
  }
end

def nu13replace_line(line)
  return line.gsub(/require \"qwik\/test-module-ms\"/) {
    "require \"qwik/test-module-ml\""
  }
end

def nu14replace_line(line)
  return line.gsub(/user@e.com/) {
    "bob@example.net"
  }
end

def nu15replace_line(line)
  return line.gsub(/Mail\.send_mail/) {
    "Sendmail.send_mail"
  }
end

def nu16replace_line(line)
  return line.gsub(/class QuickML$/) {
    "class Group"
  }
end

def nu17replace_line(line)
  return line.gsub(/QuickML::QuickML/) {
    "QuickML::Group"
  }
end

def nu18replace_line(line)
  return line.gsub(/QuickML\./) {
    "Group\."
  }
end

def nu19replace_line(line)
  return line.gsub(/require "qwik\/util-path"/) {
    'require "qwik/util-pathname'
  }
end

def nu20replace_line(line)
  return line.gsub(/require "qwik\/util-pathname$/) {
    'require "qwik\/util-pathname"'
  }
end

def replace_line(line)
  return line.gsub(/require "qwik\\\/util-pathname"/) {
    'require "qwik/util-pathname"'
  }
end

def dummy_replace_line(line)	# dummy
  return line
end

def main
  #Dir.glob("test-sub-*.rb") {|fname|
  Dir.glob("*.rb") {|fname|
    content = open(fname, "rb") {|f| f.read }
    
    newcontent = ""
    replace = false
    content.each {|line|
      newline = replace_line(line)
      if newline != line
	pp [fname, newline]
	replace = true
      end
      #newline = line	# for debug
      newcontent << newline
    }

    if replace
      open(fname+".bak", "wb") {|f|
	f.print content # make backup
      }
      open(fname, "wb") {|f|
	f.print newcontent # make new content
      }
    end
  }
end
main
