require File.expand_path(File.join(File.dirname(__FILE__), "..", "rake_helpers"))

##############################################################################
# Package && release
##############################################################################
RUBY_FORGE_PROJECT  = "merb"
PROJECT_URL         = "http://merbivore.com"
PROJECT_SUMMARY     = "DataMapper plugin providing DataMapper support for Merb"
PROJECT_DESCRIPTION = PROJECT_SUMMARY

GEM_AUTHOR  = "Jason Toy"
GEM_EMAIL   = "jtoy@rubynow.com"

GEM_NAME     = "merb_datamapper"
PKG_BUILD    = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
GEM_VERSION  = Merb::VERSION + PKG_BUILD

RELEASE_NAME = "REL #{GEM_VERSION}"

GEM_DEPENDENCIES = [
  ["dm-core",       "~> #{Merb::DM_VERSION}"],
  ["dm-migrations", "~> #{Merb::DM_VERSION}"],
  ["merb-core",     "~> #{GEM_VERSION}"]
]

require "extlib/tasks/release"

spec = Gem::Specification.new do |s|
  s.rubyforge_project = RUBY_FORGE_PROJECT
  s.name = GEM_NAME
  s.version = GEM_VERSION
  s.platform = Gem::Platform::RUBY
  s.has_rdoc = true
  s.extra_rdoc_files = ["LICENSE", 'TODO']
  s.summary = PROJECT_SUMMARY
  s.description = PROJECT_DESCRIPTION
  s.author = GEM_AUTHOR
  s.email = GEM_EMAIL
  s.homepage = PROJECT_URL
  GEM_DEPENDENCIES.each do |gem, version|
    s.add_dependency gem, version
  end
  s.require_path = 'lib'
  s.files = %w(LICENSE Rakefile TODO Generators) + Dir.glob("{lib}/**/*")
end

Rake::GemPackageTask.new(spec) do |pkg|
  pkg.gem_spec = spec
end

desc "Install the gem"
task :install do
  Merb::RakeHelper.install(GEM_NAME, :version => GEM_VERSION)
end

desc "Uninstall the gem"
task :uninstall do
  Merb::RakeHelper.uninstall(GEM_NAME, :version => GEM_VERSION)
end

desc "Create a gemspec file"
task :gemspec do
  File.open("#{GEM_NAME}.gemspec", "w") do |file|
    file.puts spec.to_ruby
  end
end

desc "Run all examples (or a specific spec with TASK=xxxx)"
Spec::Rake::SpecTask.new('spec') do |t|
  t.spec_opts  = ["-cfs"]
  t.spec_files = begin
    if ENV["TASK"] 
      ENV["TASK"].split(',').map { |task| "spec/**/#{task}_spec.rb" }
    else
      FileList['spec/**/*_spec.rb']
    end
  end
end

desc 'Default: run spec examples'
task :default => 'spec'
