Beam-Make
view release on metacpan or search on metacpan
lib/Beam/Make.pm view on Meta::CPAN
}
# If there is no recipe for the target, it must be a source
# file. Source files cannot be built, but we do want to know
# when they were last modified
if ( !$conf->{ $target } ) {
$LOG->debug(
"$target has no recipe and "
. ( -e $target ? 'exists as a file' : 'does not exist as a file' )
);
return stat( $target )->mtime if -e $target;
die $LOG->errorf( q{No recipe for target "%s" and file does not exist}."\n", $target );
}
# Resolve any references in the recipe object via Beam::Wire
# containers.
my $target_conf = $self->_resolve_ref( $conf->{ $target } );
my $class = delete( $target_conf->{ '$class' } ) || 'Beam::Make::File';
$LOG->debug( "Building recipe object $target ($class)" );
eval "require $class";
if ( $@ ) {
lib/Beam/Make/Cache.pm view on Meta::CPAN
my $cache = $self->_fetch_cache;
return Time::Piece->new( $cache->{ $name }{ time } )
if $cache->{ $name }
&& $cache->{ $name }{ hash } eq $hash
;
return 0;
}
sub _fetch_cache( $self ) {
my $last_read = $self->_last_read;
if ( -e $self->file && ( !$last_read || stat( $self->file )->mtime > $last_read ) ) {
$self->_last_read( stat( $self->file )->mtime );
$self->_cache( YAML::LoadFile( $self->file ) );
}
return $self->_cache;
}
sub _write_cache( $self, $cache ) {
my $old_cache = $self->_fetch_cache;
$cache = { %$old_cache, %$cache };
YAML::DumpFile( $self->file, $cache );
$self->_cache( $cache );
$self->_last_read( stat( $self->file )->mtime );
return;
}
1;
__END__
=pod
=head1 NAME
( run in 1.196 second using v1.01-cache-2.11-cpan-49f99fa48dc )