CXC-DB-DDL

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Hash::Ordered" : "0",
            "Hash::Util" : "0",
            "Import::Into" : "0",
            "List::Util" : "1.33",
            "Module::Runtime" : "0",
            "Moo" : "0",
            "Moo::Role" : "0",
            "MooX::StrictConstructor" : "0",
            "MooX::TaggedAttributes" : "0.18",
            "Package::Stash" : "0",
            "Ref::Util" : "0",
            "SQL::Translator" : "1.61",
            "SQL::Translator::Schema" : "0",
            "SQL::Translator::Schema::Constants" : "0",
            "SQL::Translator::Schema::Constraint" : "0",
            "SQL::Translator::Schema::Field" : "0",
            "SQL::Translator::Schema::Table" : "0",
            "Scalar::Util" : "0",
            "Sub::Override" : "0.12",
            "Sub::Util" : "1.40",
            "Type::Library" : "0",

META.yml  view on Meta::CPAN

  Hash::Ordered: '0'
  Hash::Util: '0'
  Import::Into: '0'
  List::Util: '1.33'
  Module::Runtime: '0'
  Moo: '0'
  Moo::Role: '0'
  MooX::StrictConstructor: '0'
  MooX::TaggedAttributes: '0.18'
  Package::Stash: '0'
  Ref::Util: '0'
  SQL::Translator: '1.61'
  SQL::Translator::Schema: '0'
  SQL::Translator::Schema::Constants: '0'
  SQL::Translator::Schema::Constraint: '0'
  SQL::Translator::Schema::Field: '0'
  SQL::Translator::Schema::Table: '0'
  Scalar::Util: '0'
  Sub::Override: '0.12'
  Sub::Util: '1.40'
  Type::Library: '0'

dist.ini  view on Meta::CPAN

Feature::Compat::Try     = 0.05
Hash::Ordered            = 0
Hash::Util               = 0
Import::Into             = 0
List::Util               = 1.33
Module::Runtime          = 0
Moo                      = 0
MooX::StrictConstructor  = 0
MooX::TaggedAttributes   = 0.18
Package::Stash           = 0
Ref::Util                = 0
SQL::Translator          = 1.61
Sub::Override            = 0.12
Sub::Util                = 1.40
Types::Common::String    = 0
Types::Standard          = 1.016010
experimental             = 0.028
failures                 = 0
namespace::clean         = 0
perl                     = 5.026

lib/CXC/DB/DDL.pm  view on Meta::CPAN


# ABSTRACT: DDL for table creation, based on SQL::Translator::Schema

use DBI::Const::GetInfoType;
use List::Util   qw( first notall all );
use Scalar::Util qw( blessed );
use Hash::Ordered;
use SQL::Translator::Schema;
use SQL::Translator::Schema::Table;

use Ref::Util qw( is_hashref is_arrayref );
use CXC::DB::DDL::Util 'sqlt_entity_map', 'db_version';
use CXC::DB::DDL::Failure;
use CXC::DB::DDL::Table;
use CXC::DB::DDL::Constants '-all';
use Type::Params    qw( signature_for );
use Types::Standard qw( ArrayRef Bool Dict Enum HashRef InstanceOf Object Optional Str Slurpy );

use Moo;
use Feature::Compat::Try;
use experimental 'signatures', 'postderef', 'declared_refs', 'refaliasing';

lib/CXC/DB/DDL/Field.pm  view on Meta::CPAN

package CXC::DB::DDL::Field;

# ABSTRACT: DDL Representation of a field

use v5.26;

use List::Util qw( first );
use Ref::Util  qw( is_coderef is_ref );
use CXC::DB::DDL::Failure;
use CXC::DB::DDL::Constants -all;
use Types::Standard       qw( ArrayRef Bool CodeRef Dict Enum HashRef Int Optional ScalarRef );
use Types::Common::String qw( NonEmptyStr );

use Moo;
use experimental 'signatures', 'postderef', 'declared_refs', 'refaliasing';

our $VERSION = '0.19';

lib/CXC/DB/DDL/Table.pm  view on Meta::CPAN


# ABSTRACT: CXC::DB::DDL Table class

use v5.26;
use strict;
use warnings;

our $VERSION = '0.19';

use List::Util qw( any );
use Ref::Util  qw( is_ref is_arrayref is_coderef);

use CXC::DB::DDL::Failure;
use CXC::DB::DDL::Constants -all;
use CXC::DB::DDL::Types -all;
use Type::Params          qw( signature_for  );
use Types::Standard       qw( ArrayRef Bool Dict Enum HashRef InstanceOf Object Optional Undef );
use Types::Common::String qw( NonEmptyStr );

use Moo;
use experimental 'signatures', 'postderef', 'declared_refs';

lib/CXC/DB/DDL/Util.pm  view on Meta::CPAN


our $VERSION = '0.19';

use List::Util      qw( pairs first );
use Sub::Util       qw( set_subname );
use Module::Runtime ();
use Import::Into;
use Digest::MD5;

use Package::Stash;
use Ref::Util  ();
use Hash::Util ();

use DBI ();
use DBI::Const::GetInfoType;

use CXC::DB::DDL::Constants -all;

use namespace::clean;

use base 'Exporter::Tiny';

use constant BASE_TYPE_PACKAGE   => __PACKAGE__ . '::Type';
use constant DEFAULT_FIELD_CLASS => 'CXC::DB::DDL::Field';

our %EXPORT_TAGS = (
    schema_funcs => [qw( xFIELDS xCHECK xTYPE  )],
    misc         => [ 'SQL_TYPE_NAMES', 'SQL_TYPE_VALUES', 'sqlt_entity_map', 'db_version' ],
);

our @EXPORT_OK = ( map { Ref::Util::is_arrayref( $_ ) ? $_->@* : () } values %EXPORT_TAGS );

my sub gen_package_name;
my sub types;

my sub croak {
    require Carp;
    goto \&Carp::croak;
}


lib/CXC/DB/DDL/Util.pm  view on Meta::CPAN

    return join q{::}, BASE_TYPE_PACKAGE, Digest::MD5::md5_hex( $dbd // (), @xtra );
}

my sub init ( $globals ) {

    # we can reach this sub through multiple paths; only init once.
    return if exists $globals->{ __PACKAGE__() };

    # request to add support for specified DBD?
    if ( my $request = $globals->{add_dbd} ) {
        Ref::Util::is_hashref( $request )
          or croak( "add_dbd: expected the DBD entry to be a hashref, got @{[ ref $request ]} " );
        my ( $dbd, $tag, $field_class, $type_class )
          = $request->@{ 'dbd', 'tag', 'field_class', 'type_class' };

        defined( $dbd ) && defined( $tag ) && defined( $field_class )
          or croak(
            sprintf( 'add_dbd: missing dbd (%s), tag(%s), or field_class(%s)',
                map { $_ // 'undef' } ( $dbd, $tag, $field_class ), ) );

        # silently ignores attempts to redefine.  should it warn?

lib/CXC/DB/DDL/Util.pm  view on Meta::CPAN

        }

        # load the dbd types by default.
        $globals->{dbd} //= $dbd;
    }

    my %stash;

    # request particular dbd or fallback to generic DBI support
    my $dbd = $globals->{dbd} // 'DBI';
    Ref::Util::is_ref( $dbd )
      and croak( 'dbd: value must be a scalar' );

    defined( my $cache = $CACHE{$dbd} )
      or croak( "dbd: unsupported DBD: $dbd" );

    $stash{dbd}   = $dbd;
    $stash{cache} = $cache;

    # Field wrappers generated by mk_field
    # override field_class?

t/00-report-prereqs.dd  view on Meta::CPAN

                                      'Hash::Ordered' => '0',
                                      'Hash::Util' => '0',
                                      'Import::Into' => '0',
                                      'List::Util' => '1.33',
                                      'Module::Runtime' => '0',
                                      'Moo' => '0',
                                      'Moo::Role' => '0',
                                      'MooX::StrictConstructor' => '0',
                                      'MooX::TaggedAttributes' => '0.18',
                                      'Package::Stash' => '0',
                                      'Ref::Util' => '0',
                                      'SQL::Translator' => '1.61',
                                      'SQL::Translator::Schema' => '0',
                                      'SQL::Translator::Schema::Constants' => '0',
                                      'SQL::Translator::Schema::Constraint' => '0',
                                      'SQL::Translator::Schema::Field' => '0',
                                      'SQL::Translator::Schema::Table' => '0',
                                      'Scalar::Util' => '0',
                                      'Sub::Override' => '0.12',
                                      'Sub::Util' => '1.40',
                                      'Type::Library' => '0',



( run in 0.837 second using v1.01-cache-2.11-cpan-4d50c553e7e )