our
$VERSION
=
'1.302208'
;
sub
name {
my
$self
=
shift
;
my
$in
=
$self
->{+INPUT};
return
_render_bool(
$in
);
}
sub
operator {
my
$self
=
shift
;
return
'!='
if
$self
->{+NEGATE};
return
'=='
;
}
sub
verify {
my
$self
=
shift
;
my
%params
=
@_
;
my
(
$got
,
$exists
) =
@params
{
qw/got exists/
};
return
0
unless
$exists
;
my
$want
=
$self
->{+INPUT};
my
$match
= (
$want
xor
$got
) ? 0 : 1;
$match
=
$match
? 0 : 1
if
$self
->{+NEGATE};
return
$match
;
}
sub
run {
my
$self
=
shift
;
my
$delta
=
$self
->SUPER::run(
@_
) or
return
;
my
$dne
=
$delta
->dne ||
""
;
unless
(
$dne
eq
'got'
) {
my
$got
=
$delta
->got;
$delta
->set_got(_render_bool(
$got
));
}
return
$delta
;
}
sub
_render_bool {
my
$bool
=
shift
;
my
$name
=
$bool
?
'TRUE'
:
'FALSE'
;
my
$val
=
defined
$bool
?
$bool
:
'undef'
;
$val
=
"''"
unless
length
(
$val
);
return
"<$name ($val)>"
;
}
1;