class Redis

def _client

def _client
  @client
end

def initialize(*args, &block)

def initialize(*args, &block)
  _original_initialize(*args, &block)
  # This reference is necessary because during a `pipelined` block the client
  # is replaced by an instance of `Redis::Pipeline` and there is no way to
  # access the original client which references the Semian resource.
  @original_client = _client
end

def semian_identifier

def semian_identifier
  semian_resource.name
end

def semian_resource

def semian_resource
  @original_client.semian_resource
end