logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Path::Dispatcher::Rule::Under - rules under a predicate

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.

Author

       Shawn M Moore, "<sartak at bestpractical.com>"

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

See Also