MySQL-ORM

 view release on metacpan or  search on metacpan

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

extends 'MySQL::ORM::Generate::Common';

##############################################################################
## required attributes
##############################################################################

##############################################################################
## optional attributes
##############################################################################

##############################################################################
## private attributes
##############################################################################

##############################################################################
## methods
##############################################################################

method write_class (
	Str      :$file_name!,
	Str      :$class_name!,
	ArrayRef :$use,
	ArrayRef :$with,
	ArrayRef :$extends,
	ArrayRef :$attribs,
	ArrayRef :$methods,
	Bool     :$overwrite = 1
  ) {

	$self->trace;

	if ( !$overwrite ) {
		if ( -f $file_name ) {
			say "skipping pre-existing $file_name";
			return;
		}
	}

	say "writing $file_name";

	make_path dirname($file_name);

	open my $fh, '>', $file_name
	  or confess "failed to open $file_name for writing: $!";

	$self->_write( fh => $fh, text => "package $class_name;" );
	$self->_write( fh => $fh );

	#
	# use module section



( run in 0.403 second using v1.01-cache-2.11-cpan-39bf76dae61 )