# * George Moschovitis  <gm@navel.gr>
# (c) 2004-2005 Navel, all rights reserved.
# $Id$

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

task :default => :package

# Run the tests.

Rake::TestTask.new do |t|
	t.libs << 'test'
	t.test_files = FileList['test/**/tc*.rb']
	t.verbose = true
end

# Generate RDoc documentation.

Rake::RDocTask.new do |rd|
	rd.main = 'README'
	rd.rdoc_dir = 'doc/rdoc'
	rd.rdoc_files.include('README', 'INSTALL', 'doc/config.txt', 'doc/tutorial.txt', 'lib/**/*.rb')
	rd.options << '--all --inline-source'
end

# Build gem.

spec = Gem::Specification.new do |s|
	s.name = 'og'
	if File.read('lib/og.rb') =~ /Version\s+=\s+'(\d+\.\d+\.\d+)'/
		VERSION = s.version = $1 
	else
		raise 'No version found'
	end
	s.summary = 'Og (ObjectGraph)'
	s.description = 'An efficient and transparent Object-Relational mapping library'
	
	s.add_dependency 'glue', "= #{VERSION}"
	# s.add_dependency 'postgres-pr', '>= 0.3.0'
	# s.add_dependency 'postgres', '>= 0.7.1'
	# s.add_dependency 'sqlite3-ruby', '>= 1.0.0'
	#s.add_dependency 'mysql', '>= 2.5.1'

	s.required_ruby_version = '>= 1.8.1'

	s.files = FileList[
		'[A-Z]*', 'install.rb', '{bin,benchmark,examples,doc,lib,test,vendor}/**/*' 
	].exclude('.svn/**/*').exclude('**/*.log').to_a

	s.require_path = 'lib'
	s.autorequire = 'og'
	
	s.has_rdoc = true
	s.extra_rdoc_files = FileList['README', 'doc/RELEASES', 'doc/LICENSE', 'doc/AUTHORS'].to_a
	s.rdoc_options << '--main' << 'README' << '--title' << 'Og Documentation'
	s.rdoc_options << '--all' << '--inline-source'

	s.author = 'George Moschovitis'
	s.email = 'gm@navel.gr'
	s.homepage = 'http://nitro.rubyforge.org'
	s.rubyforge_project = 'nitro'
end

Rake::GemPackageTask.new(spec) do |pkg|
  pkg.package_dir = 'dist'
  pkg.need_zip = true
  pkg.need_tar = true
end

# Manual install (not recommended).

task :install do
  ruby 'install.rb'
end

