MySQL-ORM

 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";



( run in 0.585 second using v1.01-cache-2.11-cpan-beeb90c9504 )