File Coverage

blib/lib/EV/MariaDB.pm
Criterion Covered Total %
statement 26 30 86.6
branch 4 8 50.0
condition 3 22 13.6
subroutine 7 9 77.7
pod 1 1 100.0
total 41 70 58.5


line stmt bran cond sub pod time code
1             package EV::MariaDB;
2 15     15   1648742 use strict;
  15         22  
  15         555  
3 15     15   69 use warnings;
  15         46  
  15         844  
4 15     15   77 use Carp 'croak';
  15         44  
  15         674  
5              
6 15     15   620 use EV;
  15         2433  
  15         691  
7              
8             BEGIN {
9 15     15   30 our $VERSION = '0.06';
10 15     15   55 use XSLoader;
  15         49  
  15         392  
11 15         39310 XSLoader::load __PACKAGE__, $VERSION;
12             }
13              
14             *q = \&query;
15             *prep = \&prepare;
16             *reconnect = \&reset;
17             *disconnect = \&finish;
18             *errstr = \&error_message;
19             *errno = \&error_number;
20              
21             my @OPTION_KEYS = qw(
22             connect_timeout read_timeout write_timeout
23             compress multi_statements charset init_command
24             ssl_key ssl_cert ssl_ca ssl_capath ssl_cipher ssl_verify_server_cert
25             utf8 found_rows
26             );
27              
28             my %ALLOWED_ARGS = map { $_ => 1 } @OPTION_KEYS, qw(
29             loop on_connect on_error
30             host user password database db port unix_socket
31             );
32              
33 0     0   0 sub CLONE_SKIP { 1 }
34              
35             sub new {
36 2     2 1 274849 my ($class, %args) = @_;
37              
38 2 50       14 if (my @unknown = grep !$ALLOWED_ARGS{$_}, keys %args) {
39 0         0 croak "unknown argument(s) to new(): " . join(', ', sort @unknown);
40             }
41              
42 2   33     70 my $self = $class->_new($args{loop} || EV::default_loop);
43              
44 2   33 0   16 $self->on_error($args{on_error} || sub { die @_ });
  0            
45 2 50       6 $self->on_connect($args{on_connect}) if $args{on_connect};
46              
47 2         5 for my $key (@OPTION_KEYS) {
48 30 50       50 $self->_set_option($key, $args{$key}) if defined $args{$key};
49             }
50              
51 2 50 33     14 if (defined $args{host} || defined $args{user}) {
52             $self->connect(
53             $args{host} // 'localhost',
54             $args{user} // '',
55             $args{password} // '',
56             ($args{database} // $args{db} // ''),
57             $args{port} // 3306,
58             $args{unix_socket},
59 0   0     0 );
      0        
      0        
      0        
      0        
      0        
60             }
61              
62 2         6 $self;
63             }
64              
65             1;
66              
67             __END__