lib/moped/protocol/reply.rb in moped-1.4.4 vs lib/moped/protocol/reply.rb in moped-1.4.5
- old
+ new
@@ -66,11 +66,11 @@
# @return [ true, false ] If the command failed.
#
# @since 1.2.10
def command_failure?
result = documents[0]
- result["ok"] != 1 || result["err"] || result["errmsg"] || result["$err"]
+ result["ok"] != 1 || error_message(result)
end
# Was the provided cursor id not found on the server?
#
# @example Is the cursor not on the server?
@@ -108,11 +108,15 @@
# @return [ true, false ] If we had an authorization error.
#
# @since 1.2.10
def unauthorized?
result = documents[0]
- result && (UNAUTHORIZED.include?(result["code"]) || UNAUTHORIZED.include?(result["assertionCode"]))
+ return false if result.nil?
+ err = error_message(result)
+ UNAUTHORIZED.include?(result["code"]) ||
+ UNAUTHORIZED.include?(result["assertionCode"]) ||
+ (err && err =~ /unauthorized/)
end
class << self
# Consumes a buffer, returning the deserialized Reply message.
@@ -137,15 +141,17 @@
private
def deserialize_documents(buffer)
documents = []
-
count.times do
documents << BSON::Document.deserialize(buffer)
end
-
@documents = documents
+ end
+
+ def error_message(result)
+ result["err"] || result["errmsg"] || result["$err"]
end
end
end
end