Server IP : 173.249.157.85 / Your IP : 216.73.216.223 Web Server : Apache System : Linux server.frogzhost.com 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : econtech ( 1005) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/share/perl5/Test/Deep/
Current File : /usr/local/share/perl5/Test/Deep//Stack.pm
use strict;
use warnings;
package Test::Deep::Stack;
use Carp qw( confess );
use Scalar::Util;
use Test::Deep::MM qw( new init Stack Arrow );
sub init
{
my $self = shift;
$self->SUPER::init(@_);
$self->setStack([]) unless $self->getStack;
}
sub push
{
my $self = shift;
push(@{$self->getStack}, @_);
}
sub pop
{
my $self = shift;
return pop @{$self->getStack};
}
sub render
{
my $self = shift;
my $var = shift;
my $stack = $self->getStack;
$self->setArrow(0);
foreach my $data (@$stack)
{
my $exp = $data->{exp};
if (Scalar::Util::blessed($exp) and $exp->isa("Test::Deep::Cmp"))
{
$var = $exp->render_stack($var, $data);
$self->setArrow(0) if $exp->reset_arrow;
}
else
{
confess "Don't know how to render '$exp'";
}
}
return $var;
}
sub getLast
{
my $self = shift;
return $self->getStack->[-1];
}
sub incArrow
{
my $self = shift;
my $a = $self->getArrow;
$self->setArrow($a + 1);
return $a;
}
sub length
{
my $self = shift;
return @{$self->getStack} + 0;
}
1;