[Dbix-class] transaction in a resultset class
shawn wilson
ag4ve.us at gmail.com
Thu Apr 11 16:03:11 GMT 2013
On Thu, Apr 11, 2013 at 11:28 AM, Peter Rabbitson <rabbit+dbic at rabbit.us> wrote:
> On Thu, Apr 11, 2013 at 10:58:50AM -0400, shawn wilson wrote:
>> Since txn_* is a part of the schema, how do I have a resultset method
>> always run within one transaction without passing $schema (which just
>> seems kludgy)? Since I can't find anything on google about doing this,
>> I'm guessing it's a bad idea or there's some obviousness I'm missing?
>
> First
>
> http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/ResultSet.pm#result_source
>
> And then
>
> http://search.cpan.org/~ribasushi/DBIx-Class-0.08210/lib/DBIx/Class/ResultSource.pm#schema
>
I don't understand. I've got this resultset class:
package DB::Schema::ResultSet::Page;
use strict;
use warnings;
use base 'DBIx::Class::ResultSet';
sub insert_page_array_ref
{
my ($self, $pages) = @_;
foreach my $page (@$pages)
{
next unless $page =~
m|^https?://(?:[\w]+\.)(?:\.?[\w]{2,})+(:[0-9]+)?(?:/[^/]+)+$|;
$self->create({
url => $page,
stamp => time,
});
}
}
1;
How do I wrap that in say a $schema->txn_do(sub{ ... }); ?
More information about the DBIx-Class
mailing list