HTML-Tested-ClassDBI
view release on metacpan or search on metacpan
lib/HTML/Tested/ClassDBI.pm view on Meta::CPAN
use strict;
use warnings FATAL => 'all';
package HTML::Tested::ClassDBI;
use base 'HTML::Tested';
use Carp;
use HTML::Tested::ClassDBI::Field;
use Data::Dumper;
my @_cdata = qw(_CDBI_Class _PrimaryFields _Field_Handlers _PrimaryKey);
__PACKAGE__->mk_classdata($_) for @_cdata;
our $VERSION = '0.23';
sub class_dbi_object { shift()->class_dbi_object_gr('_CDBIM_', @_); }
sub class_dbi_object_gr {
my ($self, $gr, $val) = @_;
return $self->{_class_dbi_objects}->{$gr} if @_ == 2;
$self->{_class_dbi_objects}->{$gr} = $val;
}
lib/HTML/Tested/ClassDBI.pm view on Meta::CPAN
sub bind_to_class_dbi { shift()->bind_to_class_dbi_gr('_CDBIM_', @_); }
=head2 $class->bind_to_class_dbi_gr($group, $cdbi_class)
Binds $class to $cdbi class in group $group. Special group _CDBIM_ is used
as the default group.
=cut
sub bind_to_class_dbi_gr {
my ($class, $gr, $dbi_class, $opts) = @_;
$class->$_({}) for grep { !$class->$_ } @_cdata;
$class->_CDBI_Class->{$gr} = $dbi_class;
$class->_Field_Handlers->{$gr} = {};
$class->_PrimaryFields->{$gr} = {};
$class->cdbi_bind_from_fields($gr);
$class->_load_db_info($gr);
my $pk = $opts ? $opts->{PrimaryKey} : undef;
$class->_PrimaryKey->{$gr} = $pk if $pk;
confess "# No Primary fields given\n"
unless ($pk || %{ $class->_PrimaryFields->{$gr} });
( run in 0.479 second using v1.01-cache-2.11-cpan-454fe037f31 )