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 )