Path::Dispatcher::Rule::Under - rules under a predicate
Contents
Attributes
predicate
A rule (which must match prefixes) whose match determines whether the contained rules are considered. The
leftover path of the predicate is used as the path for the contained rules.
rules
A list of rules that will be try to be matched only if the predicate is matched.
Copyright And License
This software is copyright (c) 2020 by Shawn M Moore.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5
programming language system itself.
perl v5.30.3 2020-07-13 Path::Dispatcher::Rule::Under(3pm)
Description
Rules of this class have two-phase matching: if the predicate is matched, then the contained rules are
matched. The benefit of this is less repetition of the predicate, both in terms of code and in matching
it.
Name
Path::Dispatcher::Rule::Under - rules under a predicate
Support
Bugs may be submitted through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=Path-
Dispatcher> (or bug-Path-Dispatcher@rt.cpan.org <mailto:bug-Path-Dispatcher@rt.cpan.org>).
Synopsis
my $ticket = Path::Dispatcher::Rule::Tokens->new(
tokens => [ 'ticket' ],
prefix => 1,
);
my $create = Path::Dispatcher::Rule::Tokens->new(
tokens => [ 'create' ],
block => sub { create_ticket() },
);
my $delete = Path::Dispatcher::Rule::Tokens->new(
tokens => [ 'delete', qr/^\d+$/ ],
block => sub { delete_ticket(shift->pos(2)) },
);
my $rule = Path::Dispatcher::Rule::Under->new(
predicate => $ticket,
rules => [ $create, $delete ],
);
$rule->match("ticket create");
$rule->match("ticket delete 3");
Version
version 1.08
