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����������������������������...下载