aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/gems/gettext-2.1.0/Rakefile
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/gettext-2.1.0/Rakefile')
-rw-r--r--vendor/gems/gettext-2.1.0/Rakefile234
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]