[Groonga-commit] droonga/drndump at 4d445d0 [master] Handle more errors

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Apr 15 19:53:59 JST 2015


YUKI Hiroshi	2015-04-15 19:53:59 +0900 (Wed, 15 Apr 2015)

  New Revision: 4d445d07de9e44d2b10e760a0e611e5bbca4f184
  https://github.com/droonga/drndump/commit/4d445d07de9e44d2b10e760a0e611e5bbca4f184

  Message:
    Handle more errors

  Modified files:
    lib/drndump/dump_client.rb

  Modified: lib/drndump/dump_client.rb (+17 -8)
===================================================================
--- lib/drndump/dump_client.rb    2015-04-15 19:53:18 +0900 (b7f313f)
+++ lib/drndump/dump_client.rb    2015-04-15 19:53:59 +0900 (dad6e18)
@@ -25,6 +25,9 @@ module Drndump
     class NilMessage < StandardError
     end
 
+    class InvalidMessage < StandardError
+    end
+
     def initialize(params)
       @host     = params[:host]
       @port     = params[:port]
@@ -64,22 +67,17 @@ module Drndump
       client.subscribe(dump_message) do |message|
         on_progress(message)
         case message
-        when nil
-          error = NilMessage.new("nil message in dump")
-          on_error(error)
-          client.close
-          @error_message = error.to_s
         when Droonga::Client::Error
-          on_error(message)
           client.close
+          on_error(message)
           @error_message = message.to_s
-        else
+        when Hash
           case message["type"]
           when "dump.result", "dump.error"
             if message["statusCode"] != 200
               client.close
               error = message["body"]
-              on_error(message)
+              on_error(error)
               @error_message = "#{error['name']}: #{error['message']}"
             end
           when "dump.table"
@@ -102,6 +100,17 @@ module Drndump
               on_finish
             end
           end
+        when NilClass
+          client.close
+          error = NilMessage.new("nil message in dump")
+          on_error(error)
+          @error_message = error.to_s
+        else
+          client.close
+          error = InvalidMessage.new("invalid message in dump",
+                                     :message => message.inspect)
+          on_error(error)
+          @error_message = error.to_s
         end
       end
 
-------------- next part --------------
HTML����������������������������...
Download 



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