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 )