File Coverage

blib/lib/DBIx/Class.pm
Criterion Covered Total %
statement 38 38 100.0
branch 5 8 62.5
condition n/a
subroutine 14 14 100.0
pod 0 3 0.0
total 57 63 90.4


line stmt bran cond sub pod time code
1             package DBIx::Class;
2              
3 380     380   8102 use strict;
  380         825  
  380         11154  
4 380     380   1674 use warnings;
  380         615  
  380         30293  
5              
6             our $VERSION;
7             # Always remember to do all digits for the version even if they're 0
8             # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
9             # brain damage and presumably various other packaging systems too
10              
11             # $VERSION declaration must stay up here, ahead of any other package
12             # declarations, as to not confuse various modules attempting to determine
13             # this ones version, whether that be s.c.o. or Module::Metadata, etc
14             $VERSION = '0.082840';
15              
16             $VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
17              
18 380     380   2089 use DBIx::Class::_Util;
  380         734  
  380         17612  
19 380     380   1825 use mro 'c3';
  380         662  
  380         2938  
20              
21 380     380   191377 use DBIx::Class::Optional::Dependencies;
  380         885  
  380         16508  
22              
23 380     380   2305 use base qw/DBIx::Class::Componentised DBIx::Class::AccessorGroup/;
  380         648  
  380         176164  
24 380     380   170595 use DBIx::Class::StartupCheck;
  380         850  
  380         10567  
25 380     380   143819 use DBIx::Class::Exception;
  380         801  
  380         101248  
26              
27             __PACKAGE__->mk_group_accessors(inherited => '_skip_namespace_frames');
28             __PACKAGE__->_skip_namespace_frames('^DBIx::Class|^SQL::Abstract|^Try::Tiny|^Class::Accessor::Grouped|^Context::Preserve');
29              
30             # FIXME - this is not really necessary, and is in
31             # fact going to slow things down a bit
32             # However it is the right thing to do in order to get
33             # various install bases to highlight their brokenness
34             # Remove at some unknown point in the future
35 45541     45541   3571082 sub DESTROY { &DBIx::Class::_Util::detected_reinvoked_destructor }
36              
37             sub mk_classdata {
38 5847     5847 0 25610 shift->mk_classaccessor(@_);
39             }
40              
41             sub mk_classaccessor {
42 5847     5847 0 7763 my $self = shift;
43 5847         32056 $self->mk_group_accessors('inherited', $_[0]);
44 5847 100       1903090 $self->set_inherited(@_) if @_ > 1;
45             }
46              
47 6555     6555 0 963928 sub component_base_class { 'DBIx::Class' }
48              
49             sub MODIFY_CODE_ATTRIBUTES {
50 1     1   1877 my ($class,$code,@attrs) = @_;
51 1 50       52 $class->mk_classdata('__attr_cache' => {})
52             unless $class->can('__attr_cache');
53 1         29 $class->__attr_cache->{$code} = [@attrs];
54 1         22 return ();
55             }
56              
57             sub _attr_cache {
58 1     1   1 my $self = shift;
59 1 50       27 my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};
60              
61             return {
62             %$cache,
63 1 50       12 %{ $self->maybe::next::method || {} },
  1         7  
64             };
65             }
66              
67             # *DO NOT* change this URL nor the identically named =head1 below
68             # it is linked throughout the ecosystem
69             sub DBIx::Class::_ENV_::HELP_URL () {
70             'http://p3rl.org/DBIx::Class#GETTING_HELP/SUPPORT'
71             }
72              
73             1;
74              
75             __END__