CHI-Cascade
view release on metacpan or search on metacpan
lib/CHI/Cascade/Rule.pm view on Meta::CPAN
package CHI::Cascade::Rule;
use strict;
use warnings;
use v5.10;
use Scalar::Util 'weaken';
sub new {
my ($class, %opts) = @_;
my $from = ref($class) ? $class : \%opts;
$opts{depends} = [ defined( $opts{depends} ) ? ( $opts{depends} ) : () ]
unless ref( $opts{depends} );
# To do clone or new object
my $self = bless {
map( { $_ => $from->{$_} }
grep { exists $from->{$_} }
qw( target depends depends_catch code params busy_lock cascade recomputed actual_term ttl value_expires ) ),
qr_params => [],
matched_target => undef
}, ref($class) || $class;
if ( $opts{run_instance} ) {
$self->{run_instance} = $opts{run_instance};
weaken $self->{run_instance}; # It is against memory leaks
}
weaken $self->{cascade}; # It is against memory leaks
$self->{resolved_depends} = undef;
$self;
}
sub qr_params {
my $self = shift;
if (@_) {
$self->{qr_params} = [ @_ ];
( run in 0.350 second using v1.01-cache-2.11-cpan-65fba6d93b7 )