[Groonga-commit] ranguba/groonga-client-rails at 473e4cc [master] Add error response check

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Dec 22 00:24:22 JST 2016


Kouhei Sutou	2016-12-22 00:24:22 +0900 (Thu, 22 Dec 2016)

  New Revision: 473e4ccb2fab81b141b3d233ef364b2405230b71
  https://github.com/ranguba/groonga-client-rails/commit/473e4ccb2fab81b141b3d233ef364b2405230b71

  Message:
    Add error response check

  Modified files:
    lib/groonga/client/searcher/schema_synchronizer.rb

  Modified: lib/groonga/client/searcher/schema_synchronizer.rb (+42 -40)
===================================================================
--- lib/groonga/client/searcher/schema_synchronizer.rb    2016-12-21 18:47:50 +0900 (a8d32ff)
+++ lib/groonga/client/searcher/schema_synchronizer.rb    2016-12-22 00:24:22 +0900 (fa4114e)
@@ -33,11 +33,10 @@ module Groonga
           current_table = find_current_table
           return if current_table # TODO: validation
 
-          Client.open do |client|
-            client.table_create(:name => @schema.table,
-                                :flags => "TABLE_PAT_KEY",
-                                :key_type => "ShortText")
-          end
+          execute(:table_create,
+                  :name => @schema.table,
+                  :flags => "TABLE_PAT_KEY",
+                  :key_type => "ShortText")
         end
 
         def sync_columns
@@ -49,25 +48,24 @@ module Groonga
 
         def sync_column(column, current_column)
           if current_column.nil?
-            Client.open do |client|
-              flags = []
-              if column.vector?
-                flags << "COLUMN_VECTOR"
-              else
-                flags << "COLUMN_SCALAR"
-              end
-              if column.reference?
-                reference_table_name = generate_reference_table_name(column)
-                sync_reference_table(column, reference_table_name)
-                type = reference_table_name
-              else
-                type = column.type
-              end
-              client.column_create(:table => @schema.table,
-                                   :name => column.name,
-                                   :type => type,
-                                   :flags => flags.join("|"))
+            flags = []
+            if column.vector?
+              flags << "COLUMN_VECTOR"
+            else
+              flags << "COLUMN_SCALAR"
+            end
+            if column.reference?
+              reference_table_name = generate_reference_table_name(column)
+              sync_reference_table(column, reference_table_name)
+              type = reference_table_name
+            else
+              type = column.type
             end
+            execute(:column_create,
+                    :table => @schema.table,
+                    :name => column.name,
+                    :type => type,
+                    :flags => flags.join("|"))
           end
 
           sync_column_index(column, current_column)
@@ -84,9 +82,7 @@ module Groonga
           if column.text_family_type?
             parameters[:normalizer] = "NormalizerAuto"
           end
-          Client.open do |client|
-            client.table_create(parameters)
-          end
+          execute(:table_create, parameters)
         end
 
         def sync_column_index(column, current_column)
@@ -127,30 +123,26 @@ module Groonga
               parameters[:normalizer] = "NormalizerAuto"
             end
           end
-          Client.open do |client|
-            client.table_create(parameters)
-          end
+          execute(:table_create, parameters)
         end
 
         def create_index_column(column, lexicon_name, index_column_name)
           flags = "COLUMN_INDEX"
           flags += "|WITH_POSITION" if column.have_full_text_search_index?
-          Client.open do |client|
-            client.column_create(:table => lexicon_name,
-                                 :name => index_column_name,
-                                 :flags => flags,
-                                 :type => @schema.table,
-                                 :source => column.name)
-          end
+          execute(:column_create,
+                  :table => lexicon_name,
+                  :name => index_column_name,
+                  :flags => flags,
+                  :type => @schema.table,
+                  :source => column.name)
         end
 
         def remove_indexes(current_column)
           return if current_column.nil?
           current_column.indexes.each do |index|
-            Client.open do |client|
-              clinet.column_remove(:table => index.table.name,
-                                   :name => index.name)
-            end
+            execute(:column_remove,
+                    :table => index.table.name,
+                    :name => index.name)
           end
         end
 
@@ -167,6 +159,16 @@ module Groonga
           end
         end
 
+        def execute(name, parameters)
+          Client.open do |client|
+            response = client.execute(name, parameters)
+            unless response.success?
+              raise Client::Request::ErrorResponse.new(response)
+            end
+            response
+          end
+        end
+
         def generate_reference_table_name(column)
           "reference_#{@schema.table}_#{column.name}"
         end
-------------- next part --------------
HTML����������������������������...
Download 



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