Sha256: dcee408283d225022702acddab00ab789b4354b0560db6ad75719b57de4c9e30

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

module RedisFailover
  # Base class for all RedisFailover errors.
  class Error < StandardError
  end

  # Raised when a node is specified incorrectly.
  class InvalidNodeError < Error
  end

  # Raised when a node changes to an invalid/unknown state.
  class InvalidNodeStateError < Error
    def initialize(node, state)
      super("Invalid state change `#{state}` for node #{node}")
    end
  end

  # Raised when a node is unavailable (i.e., unreachable via network).
  class NodeUnavailableError < Error
    def initialize(node)
      super("Node: #{node}")
    end
  end

  # Raised when no master is currently available.
  class NoMasterError < Error
  end

  # Raised when no slave is currently available.
  class NoSlaveError < Error
  end

  # Raised when a redis server is no longer using the same role
  # as previously assumed.
  class InvalidNodeRoleError < Error
    def initialize(node, assumed, actual)
      super("Invalid role detected for node #{node}, client thought " +
        "it was a #{assumed}, but it's now a #{actual}")
    end
  end

  # Raised when an unsupported redis operation is performed.
  class UnsupportedOperationError < Error
    def initialize(operation)
      super("Operation `#{operation}` is currently unsupported")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redis_failover-0.8.3 lib/redis_failover/errors.rb
redis_failover-0.8.2 lib/redis_failover/errors.rb
redis_failover-0.8.1 lib/redis_failover/errors.rb