X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDB.pm;h=62d93a28edb81b69544c3391b1df81b2b7a6fe29;hb=9b465d002d544e25ae5756304c4ea59577aca363;hp=c97a708726871fe306f7b969950d8855ef3bcc72;hpb=80c90f5d6c31d3464041a6e927495ed205c7a32d;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/DB.pm b/lib/DBIx/Class/DB.pm index c97a708..62d93a2 100644 --- a/lib/DBIx/Class/DB.pm +++ b/lib/DBIx/Class/DB.pm @@ -14,7 +14,7 @@ __PACKAGE__->load_components(qw/ResultSetProxy/); sub storage { shift->schema_instance(@_)->storage; } sub resultset_instance { - my $class = shift; + my $class = ref $_[0] || $_[0]; my $source = $class->result_source_instance; if ($source->result_class ne $class) { $source = $source->new($source); @@ -56,7 +56,9 @@ will be focused on Schema-based DBIx::Class setups. Sets or gets the storage backend. Defaults to L. -=head2 class_resolver ****DEPRECATED**** +=head2 class_resolver + +****DEPRECATED**** Sets or gets the class to use for resolving a class. Defaults to L, which returns whatever you give @@ -65,7 +67,7 @@ it. See resolve_class below. =cut __PACKAGE__->mk_classdata('class_resolver' => - 'DBIx::Class::ClassResolver::PassThrough'); + 'DBIx::Class::ClassResolver::PassThrough'); =head2 connection @@ -104,7 +106,7 @@ Begins a transaction (does nothing if AutoCommit is off). =cut -sub txn_begin { $_[0]->storage->txn_begin } +sub txn_begin { shift->schema_instance->txn_begin(@_); } =head2 txn_commit @@ -112,7 +114,7 @@ Commits the current transaction. =cut -sub txn_commit { $_[0]->storage->txn_commit } +sub txn_commit { shift->schema_instance->txn_commit(@_); } =head2 txn_rollback @@ -120,7 +122,17 @@ Rolls back the current transaction. =cut -sub txn_rollback { $_[0]->storage->txn_rollback } +sub txn_rollback { shift->schema_instance->txn_rollback(@_); } + +=head2 txn_do + +Executes a block of code transactionally. If this code reference +throws an exception, the transaction is rolled back and the exception +is rethrown. See txn_do in L for more details. + +=cut + +sub txn_do { shift->schema_instance->txn_do(@_); } { my $warn;