Navigation Menu

Skip to content

Commit

Permalink
Handle more errors
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Apr 15, 2015
1 parent 4c8ba98 commit 4d445d0
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions lib/drndump/dump_client.rb
Expand Up @@ -25,6 +25,9 @@ class DumpClient
class NilMessage < StandardError
end

class InvalidMessage < StandardError
end

def initialize(params)
@host = params[:host]
@port = params[:port]
Expand Down Expand Up @@ -64,22 +67,17 @@ def run(options={}, &block)
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"
Expand All @@ -102,6 +100,17 @@ def run(options={}, &block)
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

Expand Down

0 comments on commit 4d445d0

Please sign in to comment.