[Groonga-commit] ranguba/chupa-text at 6a01d7f [master] Set source to data in archive

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Jan 1 23:43:27 JST 2014


Kouhei Sutou	2014-01-01 23:43:27 +0900 (Wed, 01 Jan 2014)

  New Revision: 6a01d7fd8165a39d50dc78c818ce997234d1e3c2
  https://github.com/ranguba/chupa-text/commit/6a01d7fd8165a39d50dc78c818ce997234d1e3c2

  Message:
    Set source to data in archive

  Modified files:
    lib/chupa-text/data.rb
    lib/chupa-text/plugin/decomposer/tar.rb
    test/decomposer/test-tar.rb

  Modified: lib/chupa-text/data.rb (+6 -0)
===================================================================
--- lib/chupa-text/data.rb    2014-01-01 23:33:52 +0900 (2590904)
+++ lib/chupa-text/data.rb    2014-01-01 23:43:27 +0900 (a1b7d9a)
@@ -24,10 +24,16 @@ module ChupaText
     attr_accessor :attributes
     attr_reader :path
 
+    # @return [Data, nil] The source of the data. For example, text
+    #   data (`hello.txt`) in archive data (`hello.tar`) have the
+    #   archive data in {#source}.
+    attr_accessor :source
+
     def initialize
       @body = nil
       @attributes = {}
       @path = nil
+      @source = nil
     end
 
     def body

  Modified: lib/chupa-text/plugin/decomposer/tar.rb (+1 -0)
===================================================================
--- lib/chupa-text/plugin/decomposer/tar.rb    2014-01-01 23:33:52 +0900 (78ea183)
+++ lib/chupa-text/plugin/decomposer/tar.rb    2014-01-01 23:43:27 +0900 (3ffbab2)
@@ -35,6 +35,7 @@ module ChupaText
           extracted = Data.new
           extracted.path = entry.full_name
           extracted.body = entry.read
+          extracted.source = data
           yield(extracted)
         end
       end

  Modified: test/decomposer/test-tar.rb (+26 -18)
===================================================================
--- test/decomposer/test-tar.rb    2014-01-01 23:33:52 +0900 (bc66d20)
+++ test/decomposer/test-tar.rb    2014-01-01 23:43:27 +0900 (dcd2a23)
@@ -22,18 +22,23 @@ class TestTarDecomposer < Test::Unit::TestCase
   end
 
   private
-  def decompose(data)
-    decomposed = []
-    @decomposer.decompose(data) do |decomopsed_data|
-      decomposed << decomopsed_data
-    end
-    decomposed
-  end
-
   def fixture_path(*components)
     super("tar", *components)
   end
 
+  sub_test_case("decompose") do
+    def decompose(data)
+      decomposed = []
+      @decomposer.decompose(data) do |decomposed_data|
+        decomposed << {
+          :path   => decomposed_data.path.to_s,
+          :body   => decomposed_data.body,
+          :source => decomposed_data.source.path.to_s,
+        }
+      end
+      decomposed
+    end
+
   sub_test_case("top-level") do
     def setup
       super
@@ -42,13 +47,14 @@ class TestTarDecomposer < Test::Unit::TestCase
     end
 
     def test_decompose
-      decomposed = decompose(@data).collect do |data|
-        [data.path, data.body]
-      end
       assert_equal([
-                     [Pathname("top-level.txt"), "top level\n"],
+                     {
+                       :path   => "top-level.txt",
+                       :body   => "top level\n",
+                       :source => @data.path.to_s,
+                     },
                    ],
-                   decomposed)
+                   decompose(@data))
     end
   end
 
@@ -60,13 +66,15 @@ class TestTarDecomposer < Test::Unit::TestCase
     end
 
     def test_decompose
-      decomposed = decompose(@data).collect do |data|
-        [data.path, data.body]
-      end
       assert_equal([
-                     [Pathname("directory/hello.txt"), "Hello in directory\n"],
+                     {
+                       :path   => "directory/hello.txt",
+                       :body   => "Hello in directory\n",
+                       :source => @data.path.to_s,
+                     },
                    ],
-                   decomposed)
+                   decompose(@data))
     end
   end
+  end
 end
-------------- next part --------------
HTML����������������������������...
Download 



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