view release on metacpan or search on metacpan
- database => $index
    Database index. If the index is specified, the client switches to the specified
    database after connection. You can also switch to another database after
    connection by using `SELECT` command. The client remembers last selected
    database after reconnection and switches to it automaticaly.
    The default database index is `0`.
- utf8 => $boolean
    If enabled, all strings will be converted to UTF-8 before sending to
    the server, and all results will be decoded from UTF-8.
    Enabled by default.
- connection\_timeout => $fractional\_seconds
    Specifies connection timeout. If the client could not connect to the server
    after specified timeout, the `on_error` callback is called with the
Gets current port of the client.
## select( $index, \[, $cb->( $reply, $err ) \] )
Selects the database by numeric index.
## database()
Gets selected database index.
## utf8( \[ $boolean \] )
Enables or disables UTF-8 mode.
## connection\_timeout( \[ $fractional\_seconds \] )
Gets or sets the `connection_timeout` of the client. The `undef` value resets
the `connection_timeout` to default value.
## read\_timeout( \[ $fractional\_seconds \] )
lib/AnyEvent/RipeRedis.pm view on Meta::CPAN
  my $class  = shift;
  my %params = @_;
  my $self = bless {}, $class;
  $self->{host} = $params{host} || D_HOST;
  $self->{port} = $params{port} || D_PORT;
  $self->{password} = $params{password};
  $self->{database}
      = defined $params{database} ? $params{database} : D_DB_INDEX;
  $self->{utf8}          = exists $params{utf8} ? $params{utf8} : 1;
  $self->{lazy}          = $params{lazy};
  $self->{reconnect}     = exists $params{reconnect} ? $params{reconnect} : 1;
  $self->{handle_params} = $params{handle_params} || {};
  $self->{on_connect}    = $params{on_connect};
  $self->{on_disconnect} = $params{on_disconnect};
  $self->connection_timeout( $params{connection_timeout} );
  $self->read_timeout( $params{read_timeout} );
  $self->reconnect_interval( $params{reconnect_interval} );
  $self->on_error( $params{on_error} );
lib/AnyEvent/RipeRedis.pm view on Meta::CPAN
        {
          croak qq{"$name" must be a positive number};
        }
        $self->{$name} = $seconds;
      }
      return $self->{$name};
    };
  }
  foreach my $name ( qw( utf8 reconnect on_connect on_disconnect ) ) {
    *{$name} = sub {
      my $self = shift;
      if (@_) {
        $self->{$name} = shift;
      }
      return $self->{$name};
    };
  }
lib/AnyEvent/RipeRedis.pm view on Meta::CPAN
      my $reply;
      my $err_code;
      if ( defined $str_len ) {
        if ( length( $handle->{rbuf} ) < $str_len + EOL_LENGTH ) {
          return;
        }
        $reply = substr( $handle->{rbuf}, 0, $str_len, '' );
        substr( $handle->{rbuf}, 0, EOL_LENGTH, '' );
        if ( $self->{utf8} ) {
          utf8::decode($reply);
        }
        undef $str_len;
      }
      else {
        my $eol_pos = index( $handle->{rbuf}, EOL );
        if ( $eol_pos < 0 ) {
          return;
        }
lib/AnyEvent/RipeRedis.pm view on Meta::CPAN
sub _push_write {
  my $self = shift;
  my $cmd  = shift;
  my $cmd_str = '';
  my @tokens  = ( @{ $cmd->{kwds} }, @{ $cmd->{args} } );
  foreach my $token (@tokens) {
    unless ( defined $token ) {
      $token = '';
    }
    elsif ( $self->{utf8} ) {
      utf8::encode($token);
    }
    $cmd_str .= '$' . length($token) . EOL . $token . EOL;
  }
  $cmd_str = '*' . scalar(@tokens) . EOL . $cmd_str;
  my $handle = $self->{_handle};
  if ( defined $self->{read_timeout}
    && !@{ $self->{_processing_queue} } )
  {
lib/AnyEvent/RipeRedis.pm view on Meta::CPAN
=item database => $index
Database index. If the index is specified, the client switches to the specified
database after connection. You can also switch to another database after
connection by using C<SELECT> command. The client remembers last selected
database after reconnection and switches to it automaticaly.
The default database index is C<0>.
=item utf8 => $boolean
If enabled, all strings will be converted to UTF-8 before sending to
the server, and all results will be decoded from UTF-8.
Enabled by default.
=item connection_timeout => $fractional_seconds
Specifies connection timeout. If the client could not connect to the server
after specified timeout, the C<on_error> callback is called with the
lib/AnyEvent/RipeRedis.pm view on Meta::CPAN
Gets current port of the client.
=head2 select( $index, [, $cb->( $reply, $err ) ] )
Selects the database by numeric index.
=head2 database()
Gets selected database index.
=head2 utf8( [ $boolean ] )
Enables or disables UTF-8 mode.
=head2 connection_timeout( [ $fractional_seconds ] )
Gets or sets the C<connection_timeout> of the client. The C<undef> value resets
the C<connection_timeout> to default value.
=head2 read_timeout( [ $fractional_seconds ] )
t/02-accessors.t view on Meta::CPAN
  on_error => sub {
    return 3;
  },
);
can_ok( $redis, 'host' );
can_ok( $redis, 'port' );
can_ok( $redis, 'database' );
can_ok( $redis, 'connection_timeout' );
can_ok( $redis, 'read_timeout' );
can_ok( $redis, 'utf8' );
can_ok( $redis, 'reconnect' );
can_ok( $redis, 'reconnect_interval' );
can_ok( $redis, 'on_connect' );
can_ok( $redis, 'on_disconnect' );
can_ok( $redis, 'on_error' );
t_host($redis);
t_port($redis);
t_database($redis);
t_conn_timeout($redis);
t_read_timeout($redis);
t_reconnect($redis);
t_reconnect_interval($redis);
t_utf8($redis);
t_on_connect($redis);
t_on_disconnect($redis);
t_on_error($redis);
sub t_host {
  my $redis = shift;
  is( $redis->host, 'localhost', 'get host' );
t/02-accessors.t view on Meta::CPAN
  $redis->reconnect_interval(undef);
  is( $redis->reconnect_interval, undef,
      q{disable "reconnect_interval"} );
  $redis->reconnect_interval(10);
  is( $redis->reconnect_interval, 10, q{set "reconnect_interval"} );
  return;
}
sub t_utf8 {
  my $redis = shift;
  is(  $redis->utf8, 1, q{get current UTF8 mode state} );
  $redis->utf8(undef);
  is( $redis->utf8, undef, q{disable UTF8 mode} );
  $redis->utf8(1);
  is( $redis->utf8, 1, q{enable UTF8 mode} );
  return;
}
sub t_on_connect {
  my $redis = shift;
  is( $redis->on_connect->(), 1, q{get "on_connect" callback} );
  $redis->on_connect(undef);
t/04-commands.t view on Meta::CPAN
use 5.008000;
use strict;
use warnings;
use utf8;
use Test::More;
use AnyEvent::RipeRedis qw( :err_codes );
require 't/test_helper.pl';
my $server_info = run_redis_instance();
if ( !defined $server_info ) {
  plan skip_all => 'redis-server is required for this test';
}
plan tests => 33;
t/04-commands.t view on Meta::CPAN
  },
);
ok( $T_CONNECTED, 'on_connect' );
t_status_reply($redis);
t_numeric_reply($redis);
t_bulk_reply($redis);
t_set_undef($redis);
t_get_undef($redis);
t_set_utf8_string($redis);
t_get_utf8_string($redis);
t_get_non_existent($redis);
t_mbulk_reply($redis);
t_mbulk_reply_empty_list($redis);
t_mbulk_reply_undef($redis);
t_nested_mbulk_reply($redis);
t_multiword_command($redis);
t_error_reply($redis);
t_default_on_error($redis);
t_error_after_exec($redis);
t_discard_method($redis);
t/04-commands.t view on Meta::CPAN
        }
      );
    }
  );
  is( $t_reply, '', 'read undef; GET' );
  return;
}
sub t_set_utf8_string {
  my $redis = shift;
  my $t_reply;
  ev_loop(
    sub {
      my $cv = shift;
      $redis->set( 'клÑÑ', 'ÐнаÑение',
        sub {
t/04-commands.t view on Meta::CPAN
        }
      );
    }
  );
  is( $t_reply, 'OK', 'write UTF-8 string; SET' );
  return;
}
sub t_get_utf8_string {
  my $redis = shift;
  my $t_reply;
  ev_loop(
    sub {
      my $cv = shift;
      $redis->set( 'клÑÑ', 'ÐнаÑение' );