require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'

$VERBOSE = nil
TMP='/tmp'

desc "Run all the tests on a fresh test database"
task :default => [ :test, :appdoc, :rddoc] 

task :test do
  ruby %{-Ilib test/test_a2tdl.rb }
  ruby %{-Ilib test/test_js.rb }
  #  ruby %{-Ilib test/test_specgenerator.rb }
  ruby %{-Ilib test/test_samples.rb }
  ruby %{-Ilib test/test_ja.rb }
  ruby %{-Ilib test/test_core.rb }
  ruby %{-Ilib test/test_ext.rb }
  ruby %{-Ilib test/test_template.rb }
  ruby %{-Ilib test/test_rd.rb }
  ruby %{-Ilib test/test_table.rb }
  ruby %{-Ilib test/test_test.rb }
  ruby %{-Ilib test/test_rails.rb } # need database setup. see the script before running
end

desc "Run the unit tests in test/unit"
Rake::TestTask.new("test1") { |t|
  t.pattern = 'test/test_*.rb'
  t.verbose = true
}

desc "Generate documentation for the application"
Rake::RDocTask.new("appdoc") { |rdoc|
  rdoc.rdoc_dir = 'doc/app'
  rdoc.title    = "Amrita2 Documentation"
  rdoc.options << '--line-numbers --inline-source'
  rdoc.rdoc_files.include('README')
  rdoc.rdoc_files.include('README_FOR_1.0_USERS')
  #rdoc.rdoc_files.include('lib/**/*.rb')
}

task :rddoc do
#  ruby %{-I lib -r amrita2/rd -e 'Amrita2::RDAProcessor.compile_rd("docs/QuickStart.rd", "docs/QuickStart.html", :css=>"default.css")' }
  ruby %{-I lib docs/rda.rb docs}
end

task :tar do
  date = Time.now.strftime("%y%m%d")
  Dir::chdir(TMP) do 
    system 'rm -rf amrita2'
    system "cvs -d ':ext:tnakajima@rubyforge.org:/var/cvs/amrita2' export -D today amrita2"
    system "tar zcvf amrita2_#{date}.tar.gz amrita2"
  end
end

task :homepage => [ :appdoc, :rddoc, :clean_backup] 

task :clean_backup do
  Dir['**/*~'].each do |f|
    puts f
    File::rm_f f
  end
end

task :homepage do
  require 'rubygems'
  require 'syntax/convertors/html'
  rconv = Syntax::Convertors::HTML.for_syntax "ruby"
  wk = '/var/www/tmp/amrita2_home'
  system "rm -rf #{wk}"
  Dir::mkdir wk 
  File::cp 'doc/app/files/README_FOR_1_0_USERS.html', wk
  system "cp -r ChangeLog sample/* docs/*.html docs/*.css  #{wk}"
  Dir::chdir(wk) do 
    Dir['**/*.rb'].each do |fn|
      File::open(fn) do |inf|
        File::open(fn+'.html', "w") do |out|
          out.print(<<END)
<html><head>
<link href='../default.css' rel='stylesheet' type='text/css'></link>
<title>#{fn}</title>
</head>
<body>
<h1>#{fn}</h1>
<div class='ruby'>
#{rconv.convert(inf.read)}
</div>
<hr />
<small class='credit'>generated with <a href='http://docs.jamisbuck.org/read/chapter/20'>Syntax</a></small>
</body>
</html>
END
        end
      end
      File::rm_f fn
    end
  end
  ruby %{-Ilib sample/hello/filelist.rb #{wk} }
  system "scp -r #{wk}/* tnakajima@rubyforge.org:/var/www/gforge-projects/amrita2"
end

