Kouhei Sutou
null+****@clear*****
Sun Jul 13 19:34:14 JST 2014
Kouhei Sutou 2014-07-13 19:34:14 +0900 (Sun, 13 Jul 2014) New Revision: b67eaaa37e6605f398d2c4ec1544b622d1e9b1f3 https://github.com/ranguba/packnga/commit/b67eaaa37e6605f398d2c4ec1544b622d1e9b1f3 Message: Use gettext 3.1.3's edit.po style task Modified files: lib/packnga/reference-task.rb packnga.gemspec test/test-document-task.rb test/test-reference-task.rb Modified: lib/packnga/reference-task.rb (+38 -47) =================================================================== --- lib/packnga/reference-task.rb 2014-07-13 19:26:59 +0900 (25ad480) +++ lib/packnga/reference-task.rb 2014-07-13 19:34:14 +0900 (28be9ac) @@ -18,6 +18,7 @@ require "erb" require "gettext/tools" +require "gettext/tools/task" require "tempfile" require "tmpdir" require "rake/clean" @@ -82,7 +83,6 @@ module Packnga @extra_files = nil @files = nil @po_dir = nil - @pot_file = nil end # @private @@ -102,7 +102,6 @@ module Packnga end @supported_languages = [@original_language, *@translate_languages] @po_dir = "#{@base_dir}/po" - @pot_file = "#{@po_dir}/#{@spec.name}.pot" @extra_files = @text_files @extra_files += [@readme] if @readme @files = @source_files + @extra_files @@ -122,6 +121,7 @@ module Packnga def define_tasks namespace :reference do + define_gettext_tasks define_pot_tasks define_po_tasks define_translate_task @@ -131,51 +131,17 @@ module Packnga task html_reference_dir.to_s => "reference:publication:generate" end - def define_pot_tasks - namespace :pot do - directory @po_dir - file @pot_file => [@po_dir, *@files] do |t| - create_pot_file(@pot_file) - end - desc "Generates pot file." - task :generate => @pot_file do |t| - end - end - end - - def define_po_tasks - namespace :po do - namespace :update do - @translate_languages.each do |language| - po_file = "#{@po_dir}/#{language}.po" - - if File.exist?(po_file) - file po_file => @files do - current_pot_file = "#{@po_dir}/tmp.pot" - create_pot_file(current_pot_file) - GetText::Tools::MsgMerge.run(po_file, current_pot_file, - "-o", po_file) - FileUtils.rm_f(current_pot_file) - end - else - file po_file => @pot_file do |t| - GetText::Tools::MsgInit.run("--input", @pot_file, - "--output", t.name, - "--locale", language.to_s) - end - end - - desc "Updates po file for #{language}." - task language => po_file - end - end - - desc "Updates po files." - task :update do - Rake::Task["clobber"].invoke - @translate_languages.each do |language| - Rake::Task["reference:po:update:#{language}"].invoke - end + def define_gettext_tasks + return if****@files*****? + + GetText::Tools::Task.define do |task| + task.spec = @spec + task.locales = @translate_languages + task.po_base_directory = @po_dir + task.files = @files + task.enable_description = false + task.pot_creator = lambda do |pot_file_path| + create_pot_file(pot_file_path.to_s) end end end @@ -188,6 +154,31 @@ module Packnga YARD::CLI::I18n.run(*options) end + def define_pot_tasks + namespace :pot do + desc "Generates POT file." + task :generate => "gettext:pot:create" + end + end + + def define_po_tasks + yard_po_files = [] + + @translate_languages.each do |language| + po_file = "#{@po_dir}/#{language}/#{@spec.name}.po" + yard_po_file = "#{@po_dir}/#{language}.po" + yard_po_files << yard_po_file + file yard_po_file => po_file do + cp(po_file, yard_po_file) + end + end + + namespace :po do + desc "Updates PO files." + task :update => yard_po_files + end + end + def define_translate_task directory reference_base_dir.to_s namespace :translate do Modified: packnga.gemspec (+1 -1) =================================================================== --- packnga.gemspec 2014-07-13 19:26:59 +0900 (b4ab358) +++ packnga.gemspec 2014-07-13 19:34:14 +0900 (3ca71c8) @@ -65,7 +65,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency("rake") spec.add_runtime_dependency("yard", ">= 0.8.6.1") - spec.add_runtime_dependency("gettext", ">= 2.3.6") + spec.add_runtime_dependency("gettext", ">= 3.1.3") spec.add_development_dependency("test-unit") spec.add_development_dependency("test-unit-notify") spec.add_development_dependency("test-unit-rr") Modified: test/test-document-task.rb (+23 -7) =================================================================== --- test/test-document-task.rb 2014-07-13 19:26:59 +0900 (b152cf7) +++ test/test-document-task.rb 2014-07-13 19:34:14 +0900 (a79e763) @@ -26,6 +26,10 @@ class DocumentTaskTest < Test::Unit::TestCase base_dir = Pathname("base_directory") document_task = Packnga::DocumentTask.new(spec) do |task| task.base_dir = base_dir.to_s + task.reference do |reference| + reference.translate_languages = ["ja"] + reference.readme = "README.md" + end end document_task.yard do |yard_task| @@ -70,6 +74,9 @@ class DocumentTaskTest < Test::Unit::TestCase else task.translate_languages = translate_languages end + task.reference do |reference| + reference.readme = "README.md" + end end end end @@ -79,6 +86,9 @@ class DocumentTaskTest < Test::Unit::TestCase spec = Gem::Specification.new("test") document_task = Packnga::DocumentTask.new(spec) do |task| task.original_language = original_language + task.reference do |reference| + reference.readme = "README.md" + end end document_task.reference do |reference_task| @@ -92,7 +102,9 @@ class DocumentTaskTest < Test::Unit::TestCase spec = Gem::Specification.new("test") do |_spec| _spec.files = [@readme] end - document_task = Packnga::DocumentTask.new(spec) + document_task = Packnga::DocumentTask.new(spec) do |task| + task.translate_languages = ["ja"] + end @yard_task = extract_yard_task(document_task) @reference_task = extract_reference_task(document_task) end @@ -129,7 +141,9 @@ class DocumentTaskTest < Test::Unit::TestCase other_c_files, ] end - document_task = Packnga::DocumentTask.new(spec) + document_task = Packnga::DocumentTask.new(spec) do |task| + task.translate_languages = ["ja"] + end @yard_task = extract_yard_task(document_task) @reference_task = extract_reference_task(document_task) @@ -142,8 +156,8 @@ class DocumentTaskTest < Test::Unit::TestCase end def test_source_files - assert_equal(@source_files, @yard_task.source_files) - assert_equal(@source_files, @reference_task.source_files) + assert_equal(@source_files.sort, @yard_task.source_files.sort) + assert_equal(@source_files.sort, @reference_task.source_files.sort) end def test_text_files @@ -163,7 +177,9 @@ class DocumentTaskTest < Test::Unit::TestCase other_text_files, ] end - document_task = Packnga::DocumentTask.new(spec) + document_task = Packnga::DocumentTask.new(spec) do |task| + task.translate_languages = ["ja"] + end @yard_task = extract_yard_task(document_task) @reference_task = extract_reference_task(document_task) end @@ -179,8 +195,8 @@ class DocumentTaskTest < Test::Unit::TestCase end def test_text_files - assert_equal(@source_text_files, @yard_task.text_files) - assert_equal(@source_text_files, @reference_task.text_files) + assert_equal(@source_text_files.sort, @yard_task.text_files.sort) + assert_equal(@source_text_files.sort, @reference_task.text_files.sort) end end Modified: test/test-reference-task.rb (+0 -26) =================================================================== --- test/test-reference-task.rb 2014-07-13 19:26:59 +0900 (aa8022c) +++ test/test-reference-task.rb 2014-07-13 19:34:14 +0900 (be6439e) @@ -23,32 +23,6 @@ class ReferenceTaskTest < Test::Unit::TestCase Rake::Task.clear end - def test_po_update_no_po_file_exists - Dir.mktmpdir do |base_dir| - package_name = "packnga" - language = "ja" - - spec = Gem::Specification.new do |_spec| - _spec.name = package_name - end - - Packnga::DocumentTask.new(spec) do |task| - task.translate_language = language - task.base_dir = base_dir - end - - po_dir = "#{base_dir}/po" - pot_file = "#{po_dir}/#{package_name}.pot" - po_file = "#{po_dir}/#{language}.po" - - mock(GetText::Tools::MsgInit).run("--input", pot_file, - "--output", po_file, - "--locale", language) - - Rake::Task["reference:po:update:ja"].invoke - end - end - def test_reference_publication_prepare Dir.mktmpdir do |base_dir| package_name = "packnga" -------------- next part -------------- HTML����������������������������...Download