Boxer
view release on metacpan or search on metacpan
lib/Boxer/File/WithSkeleton.pm view on Meta::CPAN
package Boxer::File::WithSkeleton;
=encoding UTF-8
=cut
use v5.20;
use utf8;
use Role::Commons -all;
use feature 'signatures';
use namespace::autoclean 0.16;
use Path::Tiny;
use Template::Tiny;
use File::ShareDir qw(dist_dir);
use Moo;
use MooX::StrictConstructor;
use Types::Standard qw(Maybe);
use Types::TypeTiny qw(HashLike);
use Types::Path::Tiny qw(Dir File Path);
use Boxer::Types qw(SkelDir Basename);
use strictures 2;
no warnings "experimental::signatures";
=head1 VERSION
Version v1.4.3
=cut
our $VERSION = "v1.4.3";
# permit callers to sloppily pass undefined values
sub BUILDARGS ( $class, %args )
{
delete @args{ grep !defined( $args{$_} ), keys %args };
return {%args};
}
has basename => (
is => 'ro',
isa => Basename,
);
has file => (
is => 'lazy',
isa => Basename,
default => sub ($self) {
if ( $self->basename ) {
return $self->basename;
}
elsif ( $self->skeleton_suffix ) {
return $self->skeleton_path->basename( $self->skeleton_suffix );
}
},
);
has file_path => (
is => 'lazy',
isa => Path,
required => 1,
default => sub ($self) {
if ( $self->file_dir and $self->file ) {
return $self->file_dir->child( $self->file );
}
},
);
( run in 0.504 second using v1.01-cache-2.11-cpan-39bf76dae61 )