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 )