From: Rafael Kitover Date: Sat, 13 Jun 2009 11:35:33 +0000 (+0000) Subject: make the on_(dis)?connect_do accessors returnn the original structure X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=22cbbca46d66bf92f68b49f6e5c3d60cef979548;p=dbsrgits%2FDBIx-Class-Historic.git make the on_(dis)?connect_do accessors returnn the original structure --- diff --git a/lib/DBIx/Class/Storage/DBI.pm b/lib/DBIx/Class/Storage/DBI.pm index fd30265..a049167 100644 --- a/lib/DBIx/Class/Storage/DBI.pm +++ b/lib/DBIx/Class/Storage/DBI.pm @@ -15,7 +15,7 @@ use List::Util(); __PACKAGE__->mk_group_accessors('simple' => qw/_connect_info _dbi_connect_info _dbh _sql_maker _sql_maker_opts _conn_pid _conn_tid transaction_depth _dbh_autocommit _on_connect_do - _on_disconnect_do savepoints/ + _on_disconnect_do __on_connect_do __on_disconnect_do savepoints/ ); # the values for these accessors are picked out (and deleted) from @@ -472,6 +472,7 @@ sub _setup_connect_do { my ($self, $opt) = (shift, shift); my $accessor = "_$opt"; + my $store = "__$opt"; return $self->$accessor if not @_; @@ -492,7 +493,8 @@ sub _setup_connect_do { $self->throw_exception("Invalid type for $opt ".ref($val)); } - $self->$accessor(\@store); + $self->$store(\@store); + $self->$accessor($val); } =head2 dbh_do @@ -644,7 +646,7 @@ sub disconnect { if (my $connection_call = $self->on_disconnect_call) { $self->_do_connection_actions(disconnect_call_ => $connection_call) } - if (my $connection_do = $self->_on_disconnect_do) { + if (my $connection_do = $self->__on_disconnect_do) { $self->_do_connection_actions(disconnect_call_ => $connection_do) } @@ -766,7 +768,7 @@ sub _populate_dbh { if (my $connection_call = $self->on_connect_call) { $self->_do_connection_actions(connect_call_ => $connection_call) } - if (my $connection_do = $self->_on_connect_do) { + if (my $connection_do = $self->__on_connect_do) { $self->_do_connection_actions(connect_call_ => $connection_do) } } diff --git a/t/92storage.t b/t/92storage.t index d8bba98..94bdfd3 100644 --- a/t/92storage.t +++ b/t/92storage.t @@ -162,7 +162,7 @@ for my $type (keys %$invocations) { is_deeply ( [$storage->on_connect_do, $storage->on_disconnect_do ], - [ [ map [ do_sql => $_ ], qw/a b c/ ], [ map [ do_sql => $_ ], qw/d e f/ ] ], + [ [qw/a b c/], [qw/d e f/] ], "$type correctly parsed DBIC specific on_[dis]connect_do", ); }