Kouhei Sutou
null+****@clear*****
Fri Mar 3 09:39:53 JST 2017
Kouhei Sutou 2017-03-03 09:39:53 +0900 (Fri, 03 Mar 2017) New Revision: ed0e501b2581c87adb01455eb65f141c0ff4ce42 https://github.com/ranguba/groonga-client-model/commit/ed0e501b2581c87adb01455eb65f141c0ff4ce42 Message: Support normalizer Modified files: lib/groonga_client_model/migration.rb test/unit/test_migration.rb Modified: lib/groonga_client_model/migration.rb (+14 -1) =================================================================== --- lib/groonga_client_model/migration.rb 2017-03-03 09:28:09 +0900 (602ef50) +++ lib/groonga_client_model/migration.rb 2017-03-03 09:39:53 +0900 (ea0f5b6) @@ -55,7 +55,8 @@ module GroongaClientModel type: nil, key_type: nil, tokenizer: nil, - default_tokenizer: nil) + default_tokenizer: nil, + normalizer: nil) return remove_table_raw(name) if @reverting type = normalize_table_type(type || :array) @@ -66,16 +67,19 @@ module GroongaClientModel if type != "TABLE_NO_KEY" and key_type == "ShortText" tokenizer ||= default_tokenizer tokenizer = normalize_tokenizer(tokenizer) + normalizer = normalize_normalizer(normalizer) end options = {type: type} options[:key_type] = key_type if key_type options[:tokenizer] = tokenizer if tokenizer + options[:normalizer] = normalizer if normalizer report(__method__, [name, options]) do @client.request(:table_create). parameter(:name, name). flags_parameter(:flags, [type]). parameter(:key_type, key_type). parameter(:default_tokenizer, tokenizer). + parameter(:normalizer, normalizer). response end @@ -214,6 +218,15 @@ module GroongaClientModel end end + def normalize_normalizer(normalizer) + case normalizer.to_s + when /\A(?:normalizer_?)?auto\z/i + "NormalizerAuto" + else + normalizer + end + end + def remove_table_raw(name) report(:remove_table, [name]) do @client.request(:table_remove). Modified: test/unit/test_migration.rb (+23 -0) =================================================================== --- test/unit/test_migration.rb 2017-03-03 09:28:09 +0900 (e67b25f) +++ test/unit/test_migration.rb 2017-03-03 09:39:53 +0900 (481691e) @@ -131,6 +131,29 @@ table_create terms TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram end end end + + test("normalizer") do + expected_up_report = <<-REPORT +-- create_table(:terms, {:type=>"TABLE_PAT_KEY", :key_type=>"ShortText", :normalizer=>"NormalizerAuto"}) + -> 0.0s + REPORT + expected_down_report = <<-REPORT +-- remove_table(:terms) + -> 0.0s + REPORT + expected_dump = <<-DUMP.chomp +table_create terms TABLE_PAT_KEY ShortText --normalizer NormalizerAuto + DUMP + assert_migrate(expected_up_report, + expected_down_report, + expected_dump) do |migration| + migration.instance_eval do + create_table(:terms, + :type => :patricia_trie, + :normalizer => :auto) + end + end + end end sub_test_case("columns") do -------------- next part -------------- HTML����������������������������...다운로드