[Groonga-commit] ranguba/packnga at b67eaaa [master] Use gettext 3.1.3's edit.po style task

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index