require 'rubygems'
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'lib/amrita2/version'

Gem.manage_gems


$VERBOSE = nil
TMP='/tmp'

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


PACKAGE_NAME = "amrita2"
PACKAGE_VERSION = Amrita2::Version::STRING
package_name = "#{PACKAGE_NAME}-#{PACKAGE_VERSION}"
package_dir = "pkg"
package_dir_path = "#{package_dir}/#{package_name}"

tar_file = "#{package_name}.tar.gz"
gem_file = "#{package_name}.gem"

LONGTIME_TESTS= %w(test/test_samples.rb test/test_rails.rb)

desc "Run the unit tests in test/unit"
Rake::TestTask.new  do |t|
  t.libs << "test"
  t.test_files = FileList['test/test*.rb'] - LONGTIME_TESTS
  #t.test_files = FileList['test/test_ja.rb'] 
  t.verbose = true
end

task :test_all => [ :test ] do 
  LONGTIME_TESTS.each do |t|
    ruby %{-Ilib -Itest #{t} }
  end
end

desc "Generate documentation for the application"
Rake::RDocTask.new("appdoc") { |rdoc|
  rdoc.rdoc_dir = 'docs/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/amrita2/template.rb')
  rdoc.rdoc_files.include('lib/amrita2/core.rb')
}

task :rddoc do
  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_core"
    File::mv "amrita2_core", "amrita2"
    system "tar zcvf #{tar_file} amrita2"
  end
end

task :gem do
  spec = eval(File.read("amrita2.gemspec"))
  Gem::Builder.new(spec).build
  mv gem_file, "#{TMP}/#{gem_file}"
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}"
  FileUtils::mkdir_p 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

# Local Variables:
# mode: ruby
# code: euc-jp-unix
# End:
