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