diff options
Diffstat (limited to 'vendor/gems/gettext-2.1.0/Rakefile')
-rw-r--r-- | vendor/gems/gettext-2.1.0/Rakefile | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/vendor/gems/gettext-2.1.0/Rakefile b/vendor/gems/gettext-2.1.0/Rakefile new file mode 100644 index 000000000..1a412d3e7 --- /dev/null +++ b/vendor/gems/gettext-2.1.0/Rakefile @@ -0,0 +1,234 @@ +# +# Rakefile for Ruby-GetText-Package +# +# This file maintains Ruby-GetText-Package. +# +# Use setup.rb or gem for installation. +# You don't need to use this file directly. +# +# Copyright(c) 2005-2009 Masao Mutoh +# This program is licenced under the same licence as Ruby. +# + +$:.unshift "./lib" + +require 'rubygems' +require 'rake' +require 'rake/packagetask' +require 'rake/gempackagetask' +require 'rake/rdoctask' +require 'rake/testtask' +require 'gettext/version' + +PKG_VERSION = GetText::VERSION + +############################################################ +# GetText tasks for developing +############################################################ +desc "Create lib/gettext/tools/poparser.rb" +task :poparser do + poparser_path = "lib/gettext/tools/poparser.rb" + racc = File.join(Config::CONFIG['bindir'], "racc") + if ! FileTest.exist?(racc) + puts "racc was not found: #{racc}" + exit 1 + else FileTest.exist?(racc) + ruby "#{racc} -g src/poparser.ry -o src/poparser.tmp.rb" + $stderr.puts %Q[ruby #{racc} -g src/poparser.ry -o src/poparser.tmp.rb] + + file = open(poparser_path, "w") + + file.print "=begin\n" + file.print <<-EOS + poparser.rb - Generate a .mo + + Copyright (C) 2003-2009 Masao Mutoh <mutomasa at gmail.com> + + You may redistribute it and/or modify it under the same + license terms as Ruby. +EOS + file.print "=end\n\n" + + tmpfile = open("src/poparser.tmp.rb") + file.print tmpfile.read + file.close + tmpfile.close + File.delete("src/poparser.tmp.rb") + $stderr.puts "Create #{poparser_path}." + end +end + + +desc "Create *.mo from *.po" +task :makemo do + require 'gettext/tools' + GetText.create_mofiles + + $stderr.puts "Create samples mo files." + GetText.create_mofiles( + :po_root => "samples/po", :mo_root => "samples/locale") + + $stderr.puts "Create samples/cgi mo files." + GetText.create_mofiles( + :po_root => "samples/cgi/po", :mo_root => "samples/cgi/locale") + + $stderr.puts "Create test mo files." + GetText.create_mofiles( + :po_root => "test/po", :mo_root => "test/locale") +end + +desc "Update pot/po files to match new version." +task :updatepo do + begin + require 'gettext' + require 'gettext/tools/poparser' + require 'gettext/tools' + rescue LoadError + puts "gettext/tools/poparser was not found." + end + + #lib/gettext/*.rb -> rgettext.po + GetText.update_pofiles("rgettext", + Dir.glob("lib/**/*.rb") + ["src/poparser.ry"], + "ruby-gettext #{GetText::VERSION}") +end + +desc "Gather the newest po files. (for me)" +task :gatherpo => [:updatepo] do + mkdir_p "pofiles/original" unless FileTest.exist? "pofiles/original" + Dir.glob("**/*.pot").each do |f| + unless /^(pofiles|test)/ =~ f + copy f, "pofiles/original/" + end + end + Dir.glob("**/*.po").each do |f| + unless /^(pofiles|test)/ =~ f + lang = /po\/([^\/]*)\/(.*.po)/.match(f).to_a[1] + mkdir_p "pofiles/#{lang}" unless FileTest.exist? "pofiles/#{lang}" + copy f, "pofiles/#{lang}/" + Dir.glob("pofiles/original/*.pot").each do |f| + newpo = "pofiles/#{lang}/#{File.basename(f, ".pot")}.po" + copy f, newpo unless FileTest.exist? newpo + end + end + end +end + +def mv_pofiles(src_dir, target_dir, lang) + target = File.join(target_dir, lang) + unless File.exist?(target) + mkdir_p target + sh "cvs add #{target}" + end + cvs_add_targets = "" + Dir.glob(File.join(target_dir, "ja/*.po")).sort.each do |f| + srcfile = File.join(src_dir, File.basename(f)) + if File.exist?(srcfile) + unless File.exist?(File.join(target, File.basename(f))) + cvs_add_targets << File.join(target, File.basename(f)) + " " + end + mv srcfile, target, :verbose => true + else + puts "mv #{srcfile} #{target}/ -- skipped" + end + end + sh "cvs add #{cvs_add_targets}" if cvs_add_targets.size > 0 +end + +desc "Deploy localized pofiles to current source tree. (for me)" +task :deploypo do + srcdir = ENV["SRCDIR"] ||= File.join(ENV["HOME"], "pofiles") + lang = ENV["LOCALE"] + unless lang + puts "USAGE: rake deploypo [SRCDIR=#{ENV["HOME"]}/pofiles] LOCALE=ja" + exit + end + puts "SRCDIR = #{srcdir}, LOCALE = #{lang}" + + mv_pofiles(srcdir, "po", lang) + mv_pofiles(srcdir, "samples/cgi/po", lang) + mv_pofiles(srcdir, "samples/po", lang) +end + +############################################################ +# Package tasks +############################################################ +desc "Create gem and tar.gz" +spec = Gem::Specification.new do |s| + s.name = 'gettext' + s.version = PKG_VERSION + s.summary = 'Ruby-GetText-Package is a libary and tools to localize messages.' + 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|CVS/} + s.require_path = 'lib' + s.executables = Dir.entries('bin').delete_if {|item| /^\.|CVS|~$/ =~ item } + s.bindir = 'bin' + s.add_dependency('locale', '>= 2.0.5') + s.has_rdoc = true + s.description = <<-EOF + Ruby-GetText-Package is a GNU GetText-like program for Ruby. + The catalog file(po-file) is same format with GNU GetText. + So you can use GNU GetText tools for maintaining. + EOF +end + +Rake::PackageTask.new("ruby-gettext-package", PKG_VERSION) do |o| + o.package_files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/} + o.need_tar_gz = true + o.need_zip = false +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 +############################################################ +desc 'Run all tests' +task :test do + Dir.chdir("test") do + if RUBY_PLATFORM =~ /win32/ + sh "rake.bat", "test" + else + sh "rake", "test" + end + end +end + +Rake::RDocTask.new { |rdoc| + begin + allison = `allison --path`.chop + rescue + allison = '' + end + rdoc.rdoc_dir = 'doc' + rdoc.title = "Ruby-GetText-Package 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", + "Ruby-GetText-Package #{PKG_VERSION}", + "pkg/gettext-#{PKG_VERSION}.gem", + "pkg/ruby-gettext-package-#{PKG_VERSION}.tar.gz") +end + +desc "Setup Ruby-GetText-Package. (for setup.rb)" +task :setup => [:makemo] |