DBIx-Class-Wrapper
view release on metacpan or search on metacpan
t/02-custom-baseclass.t view on Meta::CPAN
#!perl -T
use Test::More;
use Test::Fatal qw/dies_ok lives_ok/;
# use File::Temp;
use DBI;
use DBD::SQLite;
use DBIx::Class::Wrapper;
package My::Schema;
use base qw/DBIx::Class::Schema::Loader/;
__PACKAGE__->naming('current');
1;
package My::Model;
use Moose;
with qw/DBIx::Class::Wrapper/;
has 'colour' => ( is => 'rw' , isa => 'Str' , default => 'green' , required => 1 );
sub factory{
goto &dbic_factory;
}
sub _build_dbic_factory_baseclass{
return 'My::Model::DBICFactory';
}
1;
package My::Model::O::Product;
use Moose;
extends 'DBIx::Class::Wrapper::Object';
has 'o' => ( is => 'ro' , required => 1 , handles => [ 'id' , 'name' ] );
sub turn_on{
my ($self) = @_;
return "Turning on $self";
}
sub activate{
shift->o()->update({ active => 1});
}
sub deactivate{
shift->o()->update({ active => 0});
}
1;
package My::Model::DBICFactory::Product;
use Moose;
extends qw/DBIx::Class::Wrapper::Factory/ ;
sub wrap{
my ($self , $o) = @_;
return My::Model::O::Product->new({o => $o , factory => $self });
}
1;
package My::Model::DBICFactory::ActiveProduct;
use Moose;
( run in 1.939 second using v1.01-cache-2.11-cpan-54e63673c56 )