view release on metacpan or search on metacpan
bin/mysql-orm.pl view on Meta::CPAN
#!/usr/bin/env perl
# vim: tabstop=4 expandtab
###### PACKAGES ######
use Modern::Perl;
use Data::Printer alias => 'pdump';
use File::Basename;
use Getopt::Long;
Getopt::Long::Configure('no_ignore_case');
use DBI;
use MySQL::ORM::Generate;
###### CONSTANTS ######
###### GLOBALS ######
lib/MySQL/ORM.pm view on Meta::CPAN
package MySQL::ORM;
use 5.006;
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use SQL::Abstract::Complete;
use MySQL::Util::Lite;
our $VERSION = '0.18';
=head1 SYNOPSIS
lib/MySQL/ORM/Generate.pm view on Meta::CPAN
package MySQL::ORM::Generate;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use MySQL::Util::Lite;
use MySQL::ORM::Generate::Class::Db;
extends 'MySQL::ORM::Generate::Common';
##############################################################################
lib/MySQL/ORM/Generate/AttributeMaker.pm view on Meta::CPAN
package MySQL::ORM::Generate::AttributeMaker;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
##############################################################################
# required attributes
##############################################################################
##############################################################################
lib/MySQL/ORM/Generate/Class/CustomRole.pm view on Meta::CPAN
package MySQL::ORM::Generate::Class::CustomRole;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
extends 'MySQL::ORM::Generate::Common';
##############################################################################
# required attributes
##############################################################################
lib/MySQL/ORM/Generate/Class/CustomRole.pm view on Meta::CPAN
##############################################################################
method generate {
$self->trace;
$self->writer->write_class(
file_name => $self->get_module_path,
class_name => $self->get_role_name,
use => [
'Modern::Perl', 'Moose::Role',
'Method::Signatures', "Data::Printer alias => 'pdump'"
],
overwrite => 0,
);
$self->trace('exit');
}
method get_role_name {
lib/MySQL/ORM/Generate/Class/Db.pm view on Meta::CPAN
package MySQL::ORM::Generate::Class::Db;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use MySQL::Util::Lite;
use MySQL::ORM::Generate::Class::Table;
use MySQL::ORM::Generate::AttributeMaker;
use MySQL::ORM::Generate::MethodMaker;
use MySQL::ORM::Generate::Writer;
lib/MySQL/ORM/Generate/Class/Db.pm view on Meta::CPAN
push @methods,
$self->method_maker->make_method(
name => '_build_table',
body => $self->_get_build_table_body
);
$self->writer->write_class(
file_name => $self->get_module_path,
class_name => $self->get_class_name,
use => [
'Modern::Perl', 'Moose',
'namespace::autoclean', 'Method::Signatures',
"Data::Printer alias => 'pdump'", 'Module::Load'
],
extends => ['MySQL::ORM'],
attribs => \@attr,
methods => \@methods,
overwrite => 1,
);
$self->trace('exit');
lib/MySQL/ORM/Generate/Class/ResultClass.pm view on Meta::CPAN
package MySQL::ORM::Generate::Class::ResultClass;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
extends 'MySQL::ORM::Generate::Common';
##############################################################################
## required attributes
##############################################################################
lib/MySQL/ORM/Generate/Class/ResultClass.pm view on Meta::CPAN
my @attr = keys %{ $self->_touched };
return @attr;
}
);
$self->writer->write_class(
file_name => $self->get_module_path,
class_name => $self->get_class_name,
use => [
'Modern::Perl', 'Moose',
'namespace::autoclean', 'Method::Signatures',
"Data::Printer alias => 'pdump'"
],
extends => [],
attribs => \@attr,
methods => \@methods,
);
$self->trace('exit');
}
lib/MySQL/ORM/Generate/Class/ResultClassX.pm view on Meta::CPAN
package MySQL::ORM::Generate::Class::ResultClassX;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use MySQL::ORM::Generate::Class::ResultClass;
extends 'MySQL::ORM::Generate::Common';
##############################################################################
# required attributes
lib/MySQL/ORM/Generate/Class/ResultClassX.pm view on Meta::CPAN
$seen{ $parent_col->name } = 1;
}
}
}
$self->writer->write_class(
file_name => $self->get_module_path,
class_name => $self->get_class_name,
use => [
'Modern::Perl', 'Moose',
'namespace::autoclean', 'Method::Signatures',
"Data::Printer alias => 'pdump'"
],
extends => [ $self->extends ],
attribs => \@attr,
);
$self->trace('exit');
}
lib/MySQL/ORM/Generate/Class/Table.pm view on Meta::CPAN
package MySQL::ORM::Generate::Class::Table;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use List::MoreUtils qw(uniq);
use MySQL::Util::Lite;
use MySQL::ORM::Generate::Class::ResultClass;
use MySQL::ORM::Generate::Class::ResultClassX;
use MySQL::ORM::Generate::Class::CustomRole;
use SQL::Beautify;
lib/MySQL/ORM/Generate/Class/Table.pm view on Meta::CPAN
}
method _get_schema_name {
return $self->table->schema_name;
}
method _get_use_modules {
my @use = (
'Modern::Perl', 'Moose',
'namespace::autoclean', 'Method::Signatures',
"Data::Printer alias => 'pdump'"
);
push @use, $self->_result_class->get_class_name;
if ( $self->table->has_parents ) {
push @use, $self->_result_class_x->get_class_name;
}
lib/MySQL/ORM/Generate/Common.pm view on Meta::CPAN
package MySQL::ORM::Generate::Common;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use MySQL::Util::Lite;
use MySQL::Util::Lite::Column;
use IO::Handle;
##############################################################################
# required attributes
lib/MySQL/ORM/Generate/MethodMaker.pm view on Meta::CPAN
package MySQL::ORM::Generate::MethodMaker;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use Text::Trim 'trim';
##############################################################################
# required attributes
##############################################################################
lib/MySQL/ORM/Generate/Writer.pm view on Meta::CPAN
package MySQL::ORM::Generate::Writer;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use File::Path 'make_path';
use File::Basename;
use Text::Trim 'trim';
use Perl::Tidy::Sweetened;
use Capture::Tiny 'capture';
t/10-mysql-orm-generate.t view on Meta::CPAN
#!perl
use Modern::Perl;
use String::Util ':all';
use Test::More;
use Data::Printer alias => 'pdump';
use MySQL::ORM::Generate;
use File::stat;
use Module::Refresh;
use lib '.', './t';
require 'testlib.pl';
t/20-foo-testmysqlorm.t view on Meta::CPAN
#!perl
BEGIN {
# $ENV{PERL5LIB} = "tmp:" . $ENV{PERL5LIB};
};
use Modern::Perl;
use String::Util ':all';
use Test::More;
use Data::Printer alias => 'pdump';
use MySQL::ORM::Generate;
use Module::Load;
use lib '.', './t', 'tmp';
require 'testlib.pl';
use vars qw($Orm);
t/testlib.pl view on Meta::CPAN
use Modern::Perl;
use Carp;
use String::Util ':all';
use DBI;
use File::Which;
use File::Path 'remove_tree';
use constant DBNAME => 'testmysqlorm';
use constant DBNAME_FK => 'testmysqlorm_fk';
my $MysqlHost = "localhost";