NAME

App::DBCritic::Policy - Role for criticizing database schemas

VERSION

version 0.022

SYNOPSIS

package App::DBCritic::Policy::MyPolicy;
use Moo;

has description => ( default => sub{'Follow my policy'} );
has explanation => ( default => {'My way or the highway'} );
has applies_to  => ( default => sub { ['ResultSource'] } );
with 'App::DBCritic::Policy';

sub violates { $_[0]->element ne '' }

DESCRIPTION

This is a role consumed by all App::DBCritic policy plugins.

ATTRIBUTES

element

Read-only accessor for the current schema element being examined by App::DBCritic.

schema

Read-only accessor for the current schema object being examined by App::DBCritic.

METHODS

violation

Given a string description of a violation that has been encountered, creates a new App::DBCritic::Violation object from the current policy.

description

Required method. Returns a short string describing what's wrong.

explanation

Required method. Returns a string giving further details.

applies_to

Required method. Returns an array reference of types of DBIx::Class objects indicating what part(s) of the schema the policy is interested in.

violates

Required method. Role consumers must implement a violates method that returns true if the policy is violated and false otherwise, based on attributes provided by the role. Callers should call the violates method as the following:

$policy->violates($element, $schema);
Arguments: $element, $schema
Return value: nothing if the policy passes, or a App::DBCritic::Violation object if it doesn't.

SUPPORT

Perldoc

You can find documentation for this module with the perldoc command.

perldoc App::DBCritic::Policy

Websites

The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.

Bugs / Feature Requests

Please report any bugs or feature requests through the web interface at https://github.com/mjgardner/dbcritic/issues. You will be automatically notified of any progress on the request by the system.

Source Code

The code is open to the world, and available for you to hack on. Please feel free to browse it and play with it, or whatever. If you want to contribute patches, please send me a diff or prod me to pull from your repository :)

https://github.com/mjgardner/dbcritic

git clone git://github.com/mjgardner/dbcritic.git

AUTHOR

Mark Gardner <mjgardner@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2019 by Mark Gardner.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.