Exception: RedisClient::CommandError

Inherits:
Error
  • Object
show all
Includes:
HasCommand
Defined in:
lib/redis_client.rb

Constant Summary collapse

ERRORS =
{
  "WRONGPASS" => AuthenticationError,
  "NOPERM" => PermissionError,
  "READONLY" => ReadOnlyError,
  "MASTERDOWN" => MasterDownError,
  "WRONGTYPE" => WrongTypeError,
  "OOM" => OutOfMemoryError,
}.freeze

Instance Attribute Summary

Attributes included from HasCommand

#command

Attributes included from HasConfig

#config

Class Method Summary collapse

Methods included from HasCommand

#_set_command

Methods inherited from Error

with_config

Methods included from HasConfig

#_set_config, #message

Class Method Details

.parse(error_message) ⇒ Object



129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/redis_client.rb', line 129

def parse(error_message)
  code = if error_message.start_with?("ERR Error running script")
    # On older redis servers script errors are nested.
    # So we need to parse some more.
    if (match = error_message.match(/:\s-([A-Z]+) /))
      match[1]
    end
  end
  code ||= error_message.split(' ', 2).first
  klass = ERRORS.fetch(code, self)
  klass.new(error_message.strip)
end