HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //usr/local/share/perl5/Test/Deep/Regexp.pm
use strict;
use warnings;

package Test::Deep::Regexp;

use Test::Deep::Cmp;
use Test::Deep::RegexpMatches;

sub init
{
	my $self = shift;

	my $val = shift;

	$val = ref $val ? $val : qr/$val/;

	$self->{val} = $val;

	if (my $matches = shift)
	{
		$self->{matches} = Test::Deep::regexpmatches($matches, $val);
		
		$self->{flags} = shift || "";
	}
}

sub descend
{
	my $self = shift;
	my $got = shift;

	my $re = $self->{val};
	if (my $match_exp = $self->{matches})
	{
		my $flags = $self->{flags};
		my @match_got;
		if ($flags eq "g")
		{
			@match_got = $got =~ /$re/g;
		}
		else
		{
			@match_got = $got =~ /$re/;
		}

		if (@match_got)
		{
			return Test::Deep::descend(\@match_got, $match_exp);
		}
		else
		{
			return 0;
		}
	}
	else
	{
		return ($got =~ $re) ? 1 : 0;
	}
}

sub diag_message
{
	my $self = shift;

	my $where = shift;

	return "Using Regexp on $where";
}

sub render_stack1
{
	my $self = shift;

	my $stack = shift;
	return "($stack =~ $self->{regex})";
}

sub renderExp
{
	my $self = shift;

	return "$self->{val}";
}

1;