Branch Coverage

blib/lib/DBIx/Class/Schema/Loader/Base.pm
Criterion Covered Total %
branch 429 558 76.8


line true false branch
1086 16 1796 unless ref $self->{$_} eq "ARRAY"
1100 0 302 if (exists $args{'column_accessor_map'})
1108 48 1641 unless defined $_
1113 4 298 if (my $config_file = $self->config_file)
1116 0 4 if $@
1118 0 4 unless ref $config_opts eq "HASH"
1121 4 0 unless exists $self->{$k}
1125 0 302 if (defined $self->{'result_component_map'})
1126 0 0 if (defined $self->result_components_map)
1132 0 302 if (defined $self->{'result_role_map'})
1133 0 0 if (defined $self->result_roles_map)
1139 0 302 if not defined $self->use_moose && $self->use_moose and defined $self->result_roles || defined $self->result_roles_map
1153 0 300 if defined $self->result_components_map and ref $self->result_components_map ne "HASH"
1157 2 298 if ($self->result_components_map) { }
1160 4 0 unless ref $rc_map{$moniker}
1169 0 300 if defined $self->result_roles_map and ref $self->result_roles_map ne "HASH"
1173 0 300 if ($self->result_roles_map) { }
1176 0 0 unless ref $rr_map{$moniker}
1184 0 300 if ($self->use_moose)
1185 0 0 if ($self->only_autoclean) { }
1186 0 0 unless ("DBIx::Class::Schema::Loader::Optional::Dependencies"->req_ok_for("use_moose_only_autoclean"))
1192 0 0 unless ("DBIx::Class::Schema::Loader::Optional::Dependencies"->req_ok_for("use_moose"))
1214 0 300 if $self->{'dump_overwrite'}
1218 0 300 if $self->dynamic and $self->dry_run
1233 81 219 if (not defined $self->naming) { }
1240 211 89 if (not ref $self->naming and defined $self->naming) { }
0 89 elsif (ref $self->naming eq 'HASH' and exists $self->naming->{'ALL'}) { }
1255 219 81 if ($self->naming)
1257 630 27 if ($self->naming->{$key} || '') eq "current"
1262 0 300 if ($self->custom_column_info and ref $self->custom_column_info ne "CODE")
1268 31 269 unless defined $self->use_namespaces
1269 296 4 unless defined $self->generate_pod
1270 300 0 unless defined $self->pod_comment_mode
1271 300 0 unless defined $self->pod_comment_spillover_length
1273 2 298 if (my $col_collision_map = $self->col_collision_map)
1274 2 0 if (my $reftype = ref $col_collision_map) { }
1275 0 2 if ($reftype ne "HASH")
1284 2 298 if (my $rel_collision_map = $self->rel_collision_map)
1285 2 0 if (my $reftype = ref $rel_collision_map) { }
1286 0 2 if ($reftype ne "HASH")
1295 10 290 if (defined(my $rel_name_map = $self->rel_name_map))
1297 0 10 if ($reftype ne "HASH" and $reftype ne "CODE")
1302 4 296 if (defined(my $filter = $self->filter_generated_code))
1304 0 4 if ($reftype and $reftype ne "CODE")
1309 24 276 if (defined $self->db_schema)
1310 4 20 if (ref $self->db_schema eq 'ARRAY') { }
20 0 elsif (not ref $self->db_schema) { }
1311 0 4 if (@{$self->db_schema;} > 1 and not defined $self->{'qualify_objects'}) { }
0 4 elsif (@{$self->db_schema;} == 0) { }
1319 0 20 if ($self->db_schema eq "%" and not defined $self->{'qualify_objects'})
1327 284 16 if (not $self->moniker_parts) { }
1331 0 16 unless (ref $self->moniker_parts)
1334 0 16 if (ref $self->moniker_parts ne "ARRAY")
1337 0 16 if (&none(sub { $_ eq "name"; } , @{$self->moniker_parts;}))
1342 288 12 unless (defined $self->moniker_part_separator)
1345 296 4 unless (defined $self->moniker_part_map)
1356 86 214 if ($self->dynamic)
1360 3 83 if (not $self->naming_set) { }
1361 1 2 unless $ENV{'SCHEMA_LOADER_BACKCOMPAT'}
1376 25 61 if (not defined $self->use_namespaces and $self->naming_set)
1383 72 14 if ($self->use_namespaces) { }
1395 68 146 unless -e $filename
1400 4 142 unless $old_ver
1403 142 0 unless (defined $self->use_moose)
1404 0 142 if $old_gen =~ /^ (?!\s*\#) use \s+ Moose/mx
1407 60 82 $old_gen =~ /^__PACKAGE__->load_classes;/m ? :
1409 14 128 $old_gen =~ /result_namespace => (.+)/ ? :
1411 0 142 if $@
1417 10 132 if ($load_classes and not defined $self->use_namespaces) { }
33 99 elsif ($load_classes and $self->use_namespaces) { }
4 95 elsif (not $load_classes and defined $self->use_namespaces and not $self->use_namespaces) { }
78 17 elsif (not defined $self->use_namespaces or $self->use_namespaces) { }
1418 10 0 unless $ENV{'SCHEMA_LOADER_BACKCOMPAT'}
1439 66 12 if (not $self->result_namespace) { }
8 4 elsif ($result_namespace ne $self->result_namespace) { }
1453 110 32 if $v eq $CURRENT_V or $old_ver =~ /^0\.\d\d999/
1455 8 24 if (not %{$self->naming;}) { }
1456 8 0 unless $ENV{'SCHEMA_LOADER_BACKCOMPAT'}
1484 577 1829 unless $self->$k
1486 1802 27 ref $self->$k eq 'ARRAY' ? :
1518 15 57 if ($key =~ /component/ and not $c =~ s/^\+//)
1524 72 0 if (defined $installed) { }
1525 2 70 if ($installed == 0)
1545 31 8830 if -f $fullpath and &try(sub { Cwd::abs_path($fullpath); } ) ne (&try(sub { Cwd::abs_path('File::Spec'->catfile($self->dump_directory, $file)); } ) || '')
1570 1477 538 unless $self->_rewriting
1577 2676 56 unless $old_classes{$1}
1585 6 839 if $self->{'skip_load_external'}
1592 201 638 if $self->_rewriting
1595 158 681 if $old_class and $old_class ne $class
1598 808 31 unless $real_inc_path or $old_real_inc_path
1600 21 10 if ($real_inc_path)
1602 0 21 if $self->debug
1607 7 14 if ($self->dynamic)
1627 10 21 if ($old_real_inc_path)
1640 3 7 if ($self->dynamic)
1694 3 257 unless (exists $self->_tables->{$table->sql_name})
1702 1 257 unless (exists $current{$table->sql_name})
1721 0 154 if $self->{'skip_relationships'}
1757 2 853 if (@$imtables > 1)
1764 0 2 if ($different_databases or $different_schemas) { }
1767 0 0 if ($different_databases)
1784 0 0 if $use_schema and not $have_schema
1785 0 0 if $use_database and not $have_database
1817 2 152 if (@clashes)
1828 149 3 unless ($self->skip_relationships)
1860 149 149 unless defined $unload
1869 2 294 if $self->dry_run
1884 0 1682 if (my $mc = $self->_moose_metaclass($class))
1887 845 837 if $unload
1889 0 1118 if ($source = $have_source{$moniker} and $resultset_class = $source->resultset_class and $resultset_class ne "DBIx::Class::ResultSet")
1895 0 0 if (my $mc = $self->_moose_metaclass($resultset_class))
1898 0 0 if $unload
1899 0 0 if $has_file
1913 1682 0 unless $INC{'Class/MOP.pm'}
1918 0 0 unless my $mc = &try(sub { Class::MOP::class_of($class); } )
1920 0 0 $mc->isa('Moose::Meta::Class') ? :
1966 6 1980 if $self->dry_run
1974 608 6876 unless (-d $dir)
1975 0 608 unless mkdir $dir
1977 1980 5504 unless @name_parts
1989 44 254 unless $self->dynamic or $self->quiet
1998 0 298 $self->only_autoclean ? :
2004 0 298 if ($self->use_moose) { }
2012 0 298 unless $self->schema_components
2014 16 282 if (@schema_components)
2016 4 12 if @schema_components == 1
2021 172 126 if ($self->use_namespaces) { }
2027 28 144 if $self->result_namespace and $self->result_namespace ne "Result"
2031 56 316 if ($self->$attr)
2036 28 144 if $namespace_options
2061 16 1672 unless $result_base_class eq "DBIx::Class::Core"
2064 0 1688 if ($self->use_moose) { }
2068 0 0 if (@{$self->left_base_classes;} or @{$self->additional_base_classes;}) { }
2084 16 280 if (my $result_ns = $self->_downgrading_to_load_classes || $self->_rewriting_result_namespace)
2094 13 3 unless (my(@files) = glob("$result_dir/*"))
2099 42 254 unless $self->dynamic or $self->quiet
2104 2112 24 defined $version ? :
2112 24 defined $ts ? :
2116 33 850 if (-f $filename and $self->really_erase_my_files and not $self->dry_run)
2117 27 6 unless $self->quiet
2125 0 1984 if (not $old_gen and -f $filename)
2134 320 1664 if (my $renamed_class = $self->_upgrading_classes->{$class})
2137 73 247 if (-f $old_filename)
2140 73 0 unless $self->dry_run
2148 0 1984 if ($self->use_moose) { }
0 3968 elsif (defined $self->use_moose and $old_gen) { }
2155 0 0 if ($custom_content eq $non_moose_custom_content) { }
0 0 elsif (not $custom_content =~ quotemeta(join $", @{[$self->_default_moose_custom_content($is_schema)];})) { }
2163 0 0 if $old_gen =~ /use \s+ MooseX?\b/x
2170 298 1686 unless $self->{'_dump_storage'}{$class}
2172 12 1972 if ($self->filter_generated_code)
2175 6 6 if (ref $filter eq 'CODE') { }
2176 2 4 $is_schema ? :
2189 0 6 unless open my $out, qq[$filter < "$temp_file"|]
2200 0 6 unless unlink $temp_file
2203 0 6 if ($exit_code != 0)
2207 2 10 unless ($text and $text =~ /\bpackage\b/)
2208 0 2 if $self->debug
2216 848 1134 if ($old_md5)
2218 720 128 if (Digest::MD5::md5_base64(&encode("UTF-8", $compare_to)) eq $old_md5)
2219 688 32 unless $self->_upgrading_from and $is_schema
2225 6 1288 if $self->dry_run
2227 18 1270 $self->omit_version ? :
18 1270 $self->omit_timestamp ? :
2232 0 1288 unless open my $fh, ">:raw:encoding(UTF-8)", $filename
2240 1263 25 unless $self->{'_ext_storage'}{$class}
2245 0 1288 unless close $fh
2252 0 0 unless ($is_schema)
2263 0 1063 if ($self->use_moose)
2273 1136 1069 unless -f $fn
2275 0 1069 unless open my $fh, "<:encoding(UTF-8)", $fn
2284 1069 102980 if (/$mark_re/) { }
2290 1059 10 if $ver
2291 1059 10 if $ts
2295 4 1065 if ($real_md5 ne $mark_md5)
2296 2 2 if ($self->overwrite_modifications) { }
2312 1067 0 if $real_md5
2328 0 315 if $self->debug
2339 1072 630 unless $blist
2341 0 630 if $self->debug
2351 0 0 unless $rlist
2353 0 0 if $self->debug
2361 311 369 if ref $ns
2363 8 672 if ($ns =~ /^\+(.*)/) { }
2372 664 16 wantarray ? :
2384 623 228 if ($self->use_namespaces)
2393 209 642 if (my $upgrading_v = $self->_upgrading_from or $self->_rewriting)
2395 164 45 if $upgrading_v
2399 97 112 if ($self->_upgrading_from_load_classes) { }
23 89 elsif (my $ns = $self->_downgrading_to_load_classes) { }
18 71 elsif ($ns = $self->_rewriting_result_namespace) { }
2422 164 45 unless $table_class eq $old_class
2438 0 851 unless $self->components
2441 12 839 if exists $self->result_components_map->{$table_moniker}
2445 321 632 unless ($component =~ s/^\+//)
2452 315 536 if @components
2462 3424 0 $table ? :
2464 147 3277 unless defined $self->_result_class_methods
2467 590 2834 unless (exists $self->_result_class_methods->{$table_moniker})
2471 0 590 unless $self->components
2474 2 588 if exists $self->result_components_map->{$table_moniker}
2477 111 58 $c =~ /^\+/ ? :
2480 0 590 unless $self->result_roles
2483 0 590 if exists $self->result_roles_map->{$table_moniker}
2485 0 590 $self->use_moose ? :
2491 0 759 unless "Class::Inspector"->methods($class)
2511 347 2038 if $accessor eq "id"
2513 46 1992 if ($self->_is_result_class_method($accessor, $table))
2516 42 4 if (my $map = $self->col_collision_map)
2518 6 36 if (my(@matches) = $col =~ /$re/)
2525 40 6 unless ($mapped)
2542 1323 4841 if ($map and ref $map eq 'HASH') { }
1319 7044 elsif ($map and ref $map eq 'CODE') { }
2543 1319 4 if (my(@parts) = &try(sub { @{$ident;}; } ))
2547 1303 94 unless exists $part_map->{$part}
2548 16 78 if (not ref $part_map->{$part} || @parts) { }
78 0 elsif (ref $part_map->{$part} eq 'HASH') { }
2557 1306 1 unless ($new_ident or ref $map->{$ident})
2564 0 1313 unless "HASH" eq ref $cb_map
2583 34 3350 $preserve ? :
2591 34 3350 if ($preserve) { }
955 2395 elsif ($v < 7 or not $self->preserve_case) { }
2633 7 844 if my $is_view = $self->_table_is_view($table)
2639 0 851 if ($is_view and my $view_def = $self->_view_definition($table))
2672 2237 148 if $info->{'accessor'} eq $col
2687 824 27 if @$pks
2694 95 183 if $uniq_tag{join "\0", @$cols}++
2702 6 305 if ($self->uniq_to_primary and not @$pks and @non_nullable_uniqs)
2706 6 0 unless (@by_colnum > 1 and $by_colnum[0][0] == $by_colnum[1][0])
2728 830 21 if @$pks
2774 4094 8309 if (($self->naming->{$naming_key} || '') =~ /^v(\d+)\z/) { }
2790 0 5531 $self->naming->{'force_ascii'} ? :
2793 10 5521 $v >= 8 || $force ? :
2817 4 1393 if (length $moniker_part)
2822 10 1383 if ($i != $name_idx or $v >= 8)
2826 14 1379 if ($i == $name_idx and $v == 5)
2830 1145 10 $i == $name_idx ? :
1155 238 $v > 6 ? :
2835 1159 234 if ($i == $name_idx and $v >= 6)
2841 4 1151 ($self->naming->{'monikers'} || '') eq 'preserve' ? :
4 1155 ($self->naming->{'monikers'} || '') eq 'plural' ? :
2892 0 64 unless $DBIx::Class::Schema::Loader::Base::a->[0] <=> $DBIx::Class::Schema::Loader::Base::b->[0]
2899 64 1304 $_->{'method'} eq 'many_to_many' ? :
2913 0 845 unless $self->result_roles
2915 0 845 if exists $self->result_roles_map->{$table_moniker}
2917 0 845 if (@roles)
2950 4383 16 if $self->generate_pod
2953 1594 2805 if @_ < 2
2956 0 4399 if $self->debug
2964 8 1680 unless $self->generate_pod
2979 2 1678 if $comment and $comment_in_name
2983 2 1678 if ($comment and $comment_in_desc)
2998 847 3536 if ($method eq 'table') { }
847 2689 elsif ($method eq 'add_columns') { }
1300 1389 elsif ($method =~ /^(?:belongs_to|has_many|might_have)\z/) { }
64 1325 elsif ($method eq 'many_to_many') { }
177 1148 elsif ($method eq 'add_unique_constraint') { }
826 322 elsif ($method eq 'set_primary_key') { }
3000 0 847 if ref $table eq "SCALAR"
3014 4086 2669 &looks_like_number($s) ? :
23 6755 ref $s ? :
115 6778 ref $s eq 'SCALAR' ? :
7 6893 length $s == 0 ? :
40 6900 !defined($s) ? :
3023 2 2373 if (my $comment = $self->__column_comment($self->class_to_table->{$class}, $col_counter, $name))
3029 733 567 unless $self->{'_relations_started'}{$class}
3037 0 64 unless $self->{'_relations_started'}{$class}
3047 153 24 unless $self->{'_uniqs_started'}{$class}
3079 2144 1260 unless @classes and $self->generate_pod
3095 0 16 unless $self->generate_pod
3103 4049 6 unless defined $txt
3113 1680 0 if (my $code = $self->can("_table_comment"))
3123 2375 0 if (my $code = $self->can("_column_comment"))
3156 1015 1370 if (my $code = $self->custom_column_info)
3166 146 2239 if (grep $_, @{$column_info;}{map(("inflate_$_"), ("date", "datetime", "timestamp"))} or $type =~ /date|timestamp/i)
3168 36 110 if $self->datetime_timezone
3169 36 110 if $self->datetime_locale
3177 5724 4491 $self->preserve_case ? :
3183 0 0 $self->preserve_case ? :