App-DBCritic

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Const::Fast" : "0",
            "DBI" : "0",
            "DBIx::Class" : "0.08125",
            "DBIx::Class::Schema::Loader" : "0.07007",
            "Data::Compare" : "0",
            "Devel::Symdump" : "0",
            "English" : "0",
            "Getopt::Long::Descriptive" : "0",
            "List::MoreUtils" : "0",
            "List::Util" : "1.33",
            "Modern::Perl" : "0",
            "Module::Pluggable" : "0",
            "Moo" : "0",
            "Moo::Role" : "0",
            "Scalar::Util" : "0",
            "Sub::Quote" : "0",
            "namespace::autoclean" : "0",
            "overload" : "0",
            "perl" : "5.012",
            "strict" : "0",
            "utf8" : "0"

META.yml  view on Meta::CPAN

  Const::Fast: '0'
  DBI: '0'
  DBIx::Class: '0.08125'
  DBIx::Class::Schema::Loader: '0.07007'
  Data::Compare: '0'
  Devel::Symdump: '0'
  English: '0'
  Getopt::Long::Descriptive: '0'
  List::MoreUtils: '0'
  List::Util: '1.33'
  Modern::Perl: '0'
  Module::Pluggable: '0'
  Moo: '0'
  Moo::Role: '0'
  Scalar::Util: '0'
  Sub::Quote: '0'
  namespace::autoclean: '0'
  overload: '0'
  perl: '5.012'
  strict: '0'
  utf8: '0'

Makefile.PL  view on Meta::CPAN

    "Const::Fast" => 0,
    "DBI" => 0,
    "DBIx::Class" => "0.08125",
    "DBIx::Class::Schema::Loader" => "0.07007",
    "Data::Compare" => 0,
    "Devel::Symdump" => 0,
    "English" => 0,
    "Getopt::Long::Descriptive" => 0,
    "List::MoreUtils" => 0,
    "List::Util" => "1.33",
    "Modern::Perl" => 0,
    "Module::Pluggable" => 0,
    "Moo" => 0,
    "Moo::Role" => 0,
    "Scalar::Util" => 0,
    "Sub::Quote" => 0,
    "namespace::autoclean" => 0,
    "overload" => 0,
    "strict" => 0,
    "utf8" => 0
  },

Makefile.PL  view on Meta::CPAN

  "Data::Compare" => 0,
  "Devel::Symdump" => 0,
  "English" => 0,
  "File::Spec" => 0,
  "FindBin" => 0,
  "Getopt::Long::Descriptive" => 0,
  "IO::Handle" => 0,
  "IPC::Open3" => 0,
  "List::MoreUtils" => 0,
  "List::Util" => "1.33",
  "Modern::Perl" => 0,
  "Module::Pluggable" => 0,
  "Moo" => 0,
  "Moo::Role" => 0,
  "Path::Class" => 0,
  "Scalar::Util" => 0,
  "Sub::Quote" => 0,
  "Test::More" => "0.94",
  "Test::Most" => 0,
  "Test::Script::Run" => 0,
  "base" => 0,

bin/dbcritic  view on Meta::CPAN

#!/usr/bin/env perl

package main;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use utf8;

our $VERSION = '0.023';     # VERSION
use Getopt::Long::Descriptive;
use App::DBCritic;

my ( $opt, $usage ) = describe_options(
    '%c %o',
    [ 'dsn|d=s'           => 'DBI data source name' ],
    [ 'username|user|u:s' => 'name of user to use to connect to database' ],

cpanfile  view on Meta::CPAN

requires "Const::Fast" => "0";
requires "DBI" => "0";
requires "DBIx::Class" => "0.08125";
requires "DBIx::Class::Schema::Loader" => "0.07007";
requires "Data::Compare" => "0";
requires "Devel::Symdump" => "0";
requires "English" => "0";
requires "Getopt::Long::Descriptive" => "0";
requires "List::MoreUtils" => "0";
requires "List::Util" => "1.33";
requires "Modern::Perl" => "0";
requires "Module::Pluggable" => "0";
requires "Moo" => "0";
requires "Moo::Role" => "0";
requires "Scalar::Util" => "0";
requires "Sub::Quote" => "0";
requires "namespace::autoclean" => "0";
requires "overload" => "0";
requires "perl" => "5.012";
requires "strict" => "0";
requires "utf8" => "0";

lib/App/DBCritic.pm  view on Meta::CPAN

#pod B<dbcritic> is the command line interface.
#pod
#pod This is a work in progress - please see the L</SUPPORT> section below for
#pod information on how to contribute.  It especially needs ideas (and
#pod implementations!) of new policies!
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Carp;
use English '-no_match_vars';
use List::Util 1.33 'any';
use Module::Pluggable
    search_path => [ __PACKAGE__ . '::Policy' ],
    sub_name    => 'policies',
    instantiate => 'new';

lib/App/DBCritic/Loader.pm  view on Meta::CPAN

#pod
#pod This is a simple subclass of
#pod L<DBIx::Class::Schema::Loader|DBIx::Class::Schema::Loader> used by
#pod L<App::DBCritic|App::DBCritic> to dynamically
#pod generate a schema based on a database connection.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Moo;
extends 'DBIx::Class::Schema::Loader';
__PACKAGE__->loader_options( naming => 'v4', generate_pod => 0 );
1;

__END__

=pod

lib/App/DBCritic/Policy.pm  view on Meta::CPAN

#pod
#pod =head1 DESCRIPTION
#pod
#pod This is a L<role|Moo::Role> consumed by all L<App::DBCritic|App::DBCritic>
#pod policy plugins.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use English '-no_match_vars';
use Moo::Role;
use App::DBCritic::Violation;
use namespace::autoclean -also => qr{\A _}xms;

requires qw(description explanation violates applies_to);

#pod =method description

lib/App/DBCritic/Policy/BidirectionalRelationship.pm  view on Meta::CPAN

#pod =head1 DESCRIPTION
#pod
#pod This policy returns a violation if one or more of a
#pod L<DBIx::Class::ResultSource|DBIx::Class::ResultSource>'s relationships does not
#pod have a corresponding reverse relationship in the other class.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use English '-no_match_vars';
use Moo;
use Sub::Quote;
use namespace::autoclean -also => qr{\A _}xms;

has description => (
    is      => 'ro',
    default => quote_sub q{'Missing bidirectional relationship'},

lib/App/DBCritic/Policy/DuplicateRelationships.pm  view on Meta::CPAN

#pod =head1 DESCRIPTION
#pod
#pod This policy returns a violation if a
#pod L<DBIx::Class::ResultSource|DBIx::Class::ResultSource> has relationships to
#pod other tables that are identical in everything but name.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Algorithm::Combinatorics 'combinations';
use Data::Compare;
use English '-no_match_vars';
use Moo;
use Sub::Quote;
use namespace::autoclean -also => qr{\A _}xms;

has description => (

lib/App/DBCritic/Policy/NoPrimaryKey.pm  view on Meta::CPAN

#pod
#pod =head1 DESCRIPTION
#pod
#pod This policy returns a violation if a
#pod L<DBIx::Class::ResultSource|DBIx::Class::ResultSource> has zero primary columns.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Moo;
use Sub::Quote;
use namespace::autoclean -also => qr{\A _}xms;

has description => ( is => 'ro', default => quote_sub q{'No primary key'} );

#pod =attr description
#pod

lib/App/DBCritic/Policy/NullableTextColumn.pm  view on Meta::CPAN

#pod =head1 DESCRIPTION
#pod
#pod This policy returns a violation if a
#pod L<DBIx::Class::ResultSource|DBIx::Class::ResultSource> has nullable text
#pod columns.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use DBI ':sql_types';
use English '-no_match_vars';
use List::Util 1.33 'any';
use Moo;
use Sub::Quote;
use namespace::autoclean -also => qr{\A _}xms;

has description => (

lib/App/DBCritic/PolicyType.pm  view on Meta::CPAN

#pod
#pod =head1 DESCRIPTION
#pod
#pod This is a L<role|Moo::Role> consumed by all L<App::DBCritic|App::DBCritic>
#pod policy types.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
require Devel::Symdump;
use List::MoreUtils;
use Moo::Role;
use Sub::Quote;
use namespace::autoclean -also => qr{\A _}xms;
with 'App::DBCritic::Policy';

has applies_to => (

lib/App/DBCritic/PolicyType/ResultSet.pm  view on Meta::CPAN

#pod
#pod This is a role composed into L<App::DBCritic|App::DBCritic> policy classes
#pod that are interested in L<ResultSet|DBIx::Class::ResultSet>s.  It takes
#pod care of composing the L<App::DBCritic::Policy|App::DBCritic::Policy>
#pod for you.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Moo::Role;
use namespace::autoclean -also => qr{\A _}xms;
with 'App::DBCritic::PolicyType';
1;

__END__

=pod

lib/App/DBCritic/PolicyType/ResultSource.pm  view on Meta::CPAN

#pod
#pod This is a role composed into L<App::DBCritic|App::DBCritic> policy classes
#pod that are interested in L<ResultSource|DBIx::Class::ResultSource>s.  It takes
#pod care of composing the L<App::DBCritic::Policy|App::DBCritic::Policy>
#pod for you.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Moo::Role;
use namespace::autoclean -also => qr{\A _}xms;
with 'App::DBCritic::PolicyType';
1;

__END__

=pod

lib/App/DBCritic/PolicyType/Schema.pm  view on Meta::CPAN

#pod
#pod This is a role composed into L<App::DBCritic|App::DBCritic> policy classes
#pod that are interested in L<Schema|DBIx::Class::Schema>s.  It takes
#pod care of composing the L<App::DBCritic::Policy|App::DBCritic::Policy>
#pod for you.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Moo::Role;
use namespace::autoclean -also => qr{\A _}xms;
with 'App::DBCritic::PolicyType';
1;

__END__

=pod

lib/App/DBCritic/Violation.pm  view on Meta::CPAN

#pod
#pod =head1 DESCRIPTION
#pod
#pod This class represents L<App::DBCritic::Policy|App::DBCritic::Policy>
#pod violations flagged by L<App::DBCritic|App::DBCritic>.
#pod
#pod =cut

use strict;
use utf8;
use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)

our $VERSION = '0.023';     # VERSION
use Const::Fast;
use English '-no_match_vars';
use Moo;
use Sub::Quote;
use overload q{""} => sub { shift->as_string };

const my @TEXT_FIELDS => qw(description explanation details);
for (@TEXT_FIELDS) {

t/loader.t  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use Test::Most tests => 1;
use Path::Class;
use FindBin;
use local::lib dir( $FindBin::Bin, 'schema' )->stringify();
use DBICx::TestDatabase;
use App::DBCritic;

my $schema = DBICx::TestDatabase->new('MySchema');
my $critic = new_ok( 'App::DBCritic' => [ schema => $schema ] );

t/policy/bidirectional_relationship.t  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use Test::Most tests => 1;
use English '-no_match_vars';
use Path::Class;
use FindBin;
use local::lib dir( $FindBin::Bin, 'bidirectional_relationship' )
    ->stringify();
use DBICx::TestDatabase;
use App::DBCritic;

my $schema = DBICx::TestDatabase->new('MySchema');

t/policy/duplicate_relationships.t  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use Test::Most tests => 1;
use English '-no_match_vars';
use Path::Class;
use FindBin;
use local::lib dir( $FindBin::Bin, 'duplicate_relationships' )->stringify();
use DBICx::TestDatabase;
use App::DBCritic;

my $schema = DBICx::TestDatabase->new('MySchema');
my $critic = App::DBCritic->new( schema => $schema );

t/policy/no_primary_key.t  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use Test::Most tests => 1;
use English '-no_match_vars';
use Path::Class;
use FindBin;
use local::lib dir( $FindBin::Bin, 'no_primary_key' )->stringify();
use DBICx::TestDatabase;
use App::DBCritic;

my $schema = DBICx::TestDatabase->new('MySchema');
my $critic = App::DBCritic->new( schema => $schema );

t/policy/nullable_text_column.t  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use Test::Most tests => 1;
use English '-no_match_vars';
use Path::Class;
use FindBin;
use local::lib dir( $FindBin::Bin, 'nullable_text_column' )->stringify();
use DBICx::TestDatabase;
use App::DBCritic;

my $schema = DBICx::TestDatabase->new('MySchema');
my $critic = App::DBCritic->new( schema => $schema );

t/schema.t  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl '2011';    ## no critic (Modules::ProhibitUseQuotedVersion)
use Test::Most tests => 1;
use Path::Class;
use FindBin;
use local::lib dir( $FindBin::Bin, 'schema' )->stringify();
use App::DBCritic;

my $critic = new_ok( 'App::DBCritic' => [ class_name => 'MySchema' ] );

xt/author/perlcritic.rc  view on Meta::CPAN

severity = brutal
verbose = 8
exclude = CodeLayout::ProhibitHashBarewords Documentation::RequirePODUseEncodingUTF8 Editor::RequireEmacsFileVariables Miscellanea::RequireRcsKeywords Modules::RequireExplicitInclusion Modules::RequireExplicitPackage Modules::RequirePerlVersion Tics:...

[CodeLayout::RequireTidyCode]
perltidyrc = xt/author/perltidy.rc

[Lax::RequireExplicitPackage::ExceptForPragmata]
allowed_pragmata = diagnostics feature perlversion strict warnings utf8 Modern::Perl

# since we're using Modern::Perl
[Compatibility::PerlMinimumVersionAndWhy]
above_version = 5.012
[Compatibility::PodMinimumVersion]
above_version = 5.012

[ControlStructures::ProhibitPostfixControls]
flowcontrol = carp cluck confess croak die exit goto warn exit

[Documentation::PodSpelling]
stop_words = Perldoc perldoc annonations PASSed DBIx accessor schemas DBICType TypeConstraints ResultSources namespace stringify DSN DBI dsn username plugins API configfile LoadingSchema nullable SQL ResultSet ResultSets ResultSource dbcritic

xt/author/perlcritic.rc  view on Meta::CPAN

script_sections = NAME | USAGE | DESCRIPTION | CONFIGURATION | SUPPORT | AUTHOR | COPYRIGHT AND LICENSE

[InputOutput::RequireCheckedSyscalls]
functions = :builtins
exclude_functions = print say

[Subroutines::ProhibitCallsToUndeclaredSubs]
exempt_subs = Carp::croak Const::Fast::const Data::Compare::Compare Getopt::Long::Descriptive::describe_options Moo::extends Moo::has Moo::with Moo::Role::around Moo::Role::has Moo::Role::requires Moo::Role::with Sub::Quote::quote_sub

[TestingAndDebugging::RequireUseStrict]
equivalent_modules = Modern::Perl

[TestingAndDebugging::RequireUseWarnings]
equivalent_modules = Modern::Perl



( run in 0.655 second using v1.01-cache-2.11-cpan-a5abf4f5562 )