Kouhei Sutou
null+****@clear*****
Wed Jan 13 17:22:23 JST 2016
Kouhei Sutou 2015-01-26 15:51:40 +0900 (Mon, 26 Jan 2015) New Revision: 9c03966d2fc23cb9785ee1d479ff42d41c7038c1 https://github.com/groonga/groonga-command/commit/9c03966d2fc23cb9785ee1d479ff42d41c7038c1 Message: tokenize: support mode and token_filters Modified files: lib/groonga/command/tokenize.rb test/command/test-tokenize.rb Modified: lib/groonga/command/tokenize.rb (+20 -1) =================================================================== --- lib/groonga/command/tokenize.rb 2015-01-26 14:10:32 +0900 (cf87889) +++ lib/groonga/command/tokenize.rb 2015-01-26 15:51:40 +0900 (f2762a3) @@ -33,6 +33,8 @@ module Groonga :string, :normalizer, :flags, + :mode, + :token_filters, ] end end @@ -55,7 +57,7 @@ module Groonga self[:normalizer] end - # @return [Array<String>] An array of flags specified in `flags` + # @return [Array<String>] An array of flag specified in `flags` # parameter value. This array is extracted by parsing `flags` # parameter value. If `flags` parameter value is nil or empty, # an empty array is returned. @@ -64,6 +66,23 @@ module Groonga def flags @flags ||= (self[:flags] || "").split(/\s*[| ]\s*/) end + + # @return [String] `mode` parameter value. + # + # @since 1.1.0 + def mode + self[:mode] + end + + # @return [Array<String>] An array of token filter specified in + # `token_filters` parameter value. This array is extracted by + # parsing `token_filters` parameter value. If `token_filters` + # parameter value is nil or empty, an empty array is returned. + # + # @since 1.1.0 + def token_filters + @token_filters ||= (self[:token_filters] || "").split(/\s*,\s*/) + end end end end Modified: test/command/test-tokenize.rb (+40 -1) =================================================================== --- test/command/test-tokenize.rb 2015-01-26 14:10:32 +0900 (03f7280) +++ test/command/test-tokenize.rb 2015-01-26 15:51:40 +0900 (57a9feb) @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2013 Kouhei Sutou <kou �� clear-code.com> +# Copyright (C) 2013-2015 Kouhei Sutou <kou �� clear-code.com> # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -30,12 +30,16 @@ class TokenizeCommandTest < Test::Unit::TestCase string = "groonga ruby linux" normalizer = "NormalizerAuto" flags = "NONE" + mode = "ADD" + token_filters = "TokenFilterStem" ordered_arguments = [ tokenizer, string, normalizer, flags, + mode, + token_filters ] command = tokenize_command({}, ordered_arguments) assert_equal({ @@ -43,6 +47,8 @@ class TokenizeCommandTest < Test::Unit::TestCase :string => string, :normalizer => normalizer, :flags => flags, + :mode => mode, + :token_filters => token_filters, }, command.arguments) end @@ -95,4 +101,37 @@ class TokenizeCommandTest < Test::Unit::TestCase assert_equal(["NONE", "ENABLE_TOKENIZED_DELIMITER"], command.flags) end end + + class ModeTest < self + def test_reader + command = tokenize_command(:mode => "ADD") + assert_equal("ADD", command.mode) + end + end + + class TokenFiltersTest < self + def test_nil + command = tokenize_command + assert_equal([], command.token_filters) + end + + def test_empty + command = tokenize_command(:token_filters => "") + assert_equal([], command.token_filters) + end + + def test_comma_separator + token_filters = "TokenFilterStem,TokenFilterStopWord" + command = tokenize_command(:token_filters => token_filters) + assert_equal(["TokenFilterStem", "TokenFilterStopWord"], + command.token_filters) + end + + def test_spaces_around_separator + token_filters = "TokenFilterStem , TokenFilterStopWord" + command = tokenize_command(:token_filters => token_filters) + assert_equal(["TokenFilterStem", "TokenFilterStopWord"], + command.token_filters) + end + end end -------------- next part -------------- HTML����������������������������...ダウンロード