Mojolicious-Plugin-DbicSchemaViewer
view release on metacpan or search on metacpan
lib/Mojolicious/Plugin/DbicSchemaViewer.pm view on Meta::CPAN
$condition =~ s{^.*?\{}{\{};
$condition =~ s{\n\s*?package .*?\n}{\n};
$condition =~ s{\n\s*?BEGIN.*?\n}{\n};
$condition =~ s{\n\s*?use strict.*?\n}{\n}g;
$condition =~ s{\n\s*?use feature.*?\n}{\n}g;
$condition =~ s{\n\s*?no feature.*?\n}{\n}g;
$condition =~ s{\n\s{3,}\}}{\n\}};
$condition =~ s{\n\s{8,8}}{\n }g;
}
my $on_cascade = [ sort map { $_ =~ s{^cascade_}{}rm } grep { m/^cascade/ && $relation->{'attrs'}{ $_ } } keys $relation->{'attrs'}->%* ];
# do not reorder
my $relation_type = $relation->{'attrs'}{'accessor'} eq 'multi' ? 'has_many'
: $relation->{'attrs'}{'is_depends_on'} ? 'belongs_to'
: exists $relation->{'attrs'}{'join_type'} ? 'might_have'
: 'has_one'
;
push $source->{'relationships'}->@* => {
name => $relation_name,
class_name => $class_name,
clean_name => lc $class_name =~ s{::}{_}rg,
condition => $condition,
on_cascade => $on_cascade,
$relation->%*,
relation_type => $relation_type,
has_reverse_relation => keys $rs->reverse_relationship_info($relation_name)->%* ? 1 : 0,
};
}
push $db->{'sources'}->@* => $source;
}
return $db;
}
share/templates/viewer/overview.html.ep view on Meta::CPAN
<th>Condition</th>
</tr>
</thead>
<tbody>
% foreach my $relation ($rc->{'relationships'}->@*) {
% my $attrs = $relation->{'attrs'};
<tr>
<td><%== $relation->{'has_reverse_relation'} ? '' : '<span class="alert-danger">Missing reverse relation</span> ' %><a href="#rc-<%= $relation->{'clean_name'} %>"><%= $relation->{'name'} %></a></td>
<td><%= $relation->{'class_name'} %></td>
<td><%= $relation->{'relation_type'} %></td>
<td><%= join ', ' => $relation->{'on_cascade'}->@* %></td>
<td><pre><%= $relation->{'condition'} %></pre></td>
</tr>
% }
</tbody>
</table>
</div>
% }
% }
<p>Powered by <a href="https://metacpan.org/pod/Mojolicious::Plugin::DbicSchemaViewer">Mojolicious::Plugin::DbicSchemaViewer</a></p>
( run in 1.285 second using v1.01-cache-2.11-cpan-49f99fa48dc )