NAME
Cucumber::TagExpressions::Node - Cucumber Tag expression components
SYNOPSIS
use Cucumber::TagExpressions;
my $expr = Cucumber::TagExpressions->parse( '@a and @b' );
if ( $expr->evaluate( qw/x y z/ ) ) {
say "The evaluation returned false";
}
DESCRIPTION
This module defines the components making up the tag expressions.
METHODS
evaluate( @tags )
Returns true
when the tag set specified in $tags
satisfies the condition(s) of the expression, false
otherwise.
@tags
can be a list of tags to be used in the expression. It can also be a reference to a hash with the keys being the tags and the values being considered boolean values indicating whether the tag (key) is considered part of the tagset (true) or not (false).
stringify
Returns a string representation of the expression node.
NODE CLASSES
Cucumber::TagExpressions::LiteralNode
DESCRIPTION
This node class returns true
if the literal tag is specified as part of the tag-list in the expression evaluation.
ATTRIBUTES
tag
The tag to test presence for.
Cucumber::TagExpressions::AndNode
DESCRIPTION
This node class type evaluates one or more sub-expressions ("terms") and returns false
if any of the terms does. It returns true
if all of the terms return true
.
ATTRIBUTES
terms
The sub-expressions to evaluate.
Cucumber::TagExpressions::OrNode
DESCRIPTION
This node class type evaluates one or more sub-expressions ("terms") and returns true
if any of the terms does. It returns false
if all of the terms return false
.
ATTRIBUTES
terms
The sub-expressions to evaluate.
Cucumber::TagExpressions::NotNode
DESCRIPTION
This class wraps one of the other node class types, negating its result on evaluation.
ATTRIBUTES
expression
The wrapped node class instance for which to negate the result.
Cucumber::TagExpressions::ExpressionNode
DESCRIPTION
This class models the outer-most node in the tag expression; it wraps all other nodes and is the entry-point for tag expression evaluation.
ATTRIBUTES
sub_expression
An instance of one of the other node class types.
LICENSE
Please see the included LICENSE for the canonical version. In summary:
The MIT License (MIT)
Copyright (c) 2021 Erik Huelsmann
Copyright (c) 2021 Cucumber Ltd
This work is loosely derived from prior work of the same library for Ruby, called cucumber-messages
.