#
# Rakefile for gettext_rails.
#
# Use setup.rb or gem for installation.
# You don't need to use this file directly.
#
# Copyright(c) 2009 Masao Mutoh
#
# This program is licenced under the same licence as Ruby.
#

#make lib and paralel gettext checkout available
$LOAD_PATH.unshift "./lib"
gettext_path = File.join(ENV["GETTEXT_PATH"] || "../gettext/", "lib")
$LOAD_PATH.unshift gettext_path

require 'rubygems'
require 'rake'
require 'rake/packagetask'
require 'rake/gempackagetask'
require 'rake/rdoctask'

gettext_path = File.join(ENV["GETTEXT_PATH"] || "../gettext/", "lib")
$LOAD_PATH.unshift gettext_path

require 'gettext_rails/version'

PKG_VERSION = GetTextRails::VERSION

############################################################
# Manage po/mo files
############################################################
desc "Create *.mo from *.po"
task :makemo do
  $stderr.puts "Create active_record mo files."
  require 'gettext/tools'
  GetText.create_mofiles

  $stderr.puts "Create sample mo files."
  GetText.create_mofiles(:po_root => "sample/po", 
                         :mo_root => "sample/locale")

  $stderr.puts "Create samples/rails plugin mo files."
  GetText.create_mofiles(:po_root => "sample/vendor/plugins/lang_helper/po", 
                         :mo_root => "sample/vendor/plugins/lang_helper/locale")

  cd "test"
  sh "rake makemo"
  cd ".."
end

desc "Update pot/po files to match new version."
task :updatepo do
  require 'gettext/tools'

  GetText.update_pofiles("gettext_rails", 
			 Dir.glob("lib/**/*.rb"),
			 "gettext_rails #{PKG_VERSION}")

end


############################################################
# Package tasks
############################################################

desc "Create gem and tar.gz"
spec = Gem::Specification.new do |s|
  s.name = 'gettext_rails'
  s.version = PKG_VERSION
  s.summary = 'Localization support for Ruby on Rails(>=2.3) by Ruby-GetText-Package.'
  s.author = 'Masao Mutoh'
  s.email = 'mutomasa at gmail.com'
  s.homepage = 'http://gettext.rubyforge.org/'
  s.rubyforge_project = "gettext"
  s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|git/}
  s.add_dependency('gettext_activerecord', '>= 2.1.0')
  s.add_dependency('locale_rails', '>= 2.0.5')
  s.add_dependency('rails', '>= 2.3.2')
  s.require_path = 'lib'
  s.has_rdoc = true
  s.description = 'Localization support for Ruby on Rails(>=2.3.2) by Ruby-GetText-Package.'
end

Rake::GemPackageTask.new(spec) do |p|
  p.gem_spec = spec
  p.need_tar_gz = false
  p.need_zip = false
end

task :package => [:makemo]

############################################################
# Misc tasks
############################################################

Rake::RDocTask.new { |rdoc|
  begin
    allison = `allison --path`.chop
  rescue
    allison = ''
  end
  rdoc.rdoc_dir = 'doc'
  rdoc.title    = "gettext_rails API Reference"
  rdoc.options << '--line-numbers' << '--inline-source'
  rdoc.rdoc_files.include('README.rdoc', 'ChangeLog')
  rdoc.rdoc_files.include('lib/**/*.rb')
  rdoc.template = allison if allison.size > 0
}

desc "Publish the release files to RubyForge."
task :release => [ :package ] do
  require 'rubyforge'

  rubyforge = RubyForge.new
  rubyforge.configure
  rubyforge.login
  rubyforge.add_release("gettext", "gettext_rails", 
                        PKG_VERSION, 
                        "pkg/gettext_rails-#{PKG_VERSION}.gem")
end

# Run the unit tests
desc 'Run tests'
task :test do
  cd "test"
  sh $0 + " test"
  cd ".."
end

