[Groonga-commit] groonga/groonga-command at 9c03966 [fix-travis-ci-error] tokenize: support mode and token_filters

アーカイブの一覧に戻る

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����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る