1 use DBIx::Class::Optional::Dependencies -skip_all_without => qw( cdbicompat Time::Piece>=0 );
10 use base qw(DBIx::Class::CDBICompat);
11 Temp::DBI->columns(All => qw(id date));
13 my $strptime_inflate = sub {
14 Time::Piece->strptime(shift, "%Y-%m-%d")
17 date => 'Time::Piece',
18 inflate => $strptime_inflate
24 Temp::Person->table('people');
25 Temp::Person->columns(Info => qw(name pet));
26 Temp::Person->has_a( pet => 'Temp::Pet' );
30 Temp::Pet->table('pets');
31 Temp::Pet->columns(Info => qw(name));
32 Temp::Pet->has_many(owners => 'Temp::Person');
37 my $pn_meta = Temp::Person->meta_info('has_a');
38 is_deeply [sort keys %$pn_meta], [qw/date pet/], "Person has Date and Pet";
42 my $pt_meta = Temp::Pet->meta_info;
43 is_deeply [keys %{$pt_meta->{has_a}}], [qw/date/], "Pet has Date";
44 is_deeply [keys %{$pt_meta->{has_many}}], [qw/owners/], "And owners";
48 my $pet = Temp::Person->meta_info( has_a => 'pet' );
49 is $pet->class, 'Temp::Person';
50 is $pet->foreign_class, 'Temp::Pet';
51 is $pet->accessor, 'pet';
52 is $pet->name, 'has_a';
56 my $owners = Temp::Pet->meta_info( has_many => 'owners' );
58 is_deeply $owners->args, {
65 my $date = Temp::Pet->meta_info( has_a => 'date' );
66 is $date->class, 'Temp::DBI';
67 is $date->foreign_class, 'Time::Piece';
68 is $date->accessor, 'date';
69 is $date->args->{inflate}, $strptime_inflate;