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

Test2::API::Stack - Object to manage a stack of Test2::Hub instances.

***Internals Note***

Theinternalsofthispackagearesubjecttochangeatanytime! The public methods provided will not
       change in backwards incompatible ways, but the underlying implementation details might. Donotbreakencapsulationhere!

Authors

       Chad Granum <exodist@cpan.org>

Description

       This module is used to represent and manage a stack of Test2::Hub objects. Hubs are usually in a stack so
       that you can push a new hub into place that can intercept and handle events differently than the primary
       hub.

Maintainers

       Chad Granum <exodist@cpan.org>

Methods

       $stack = Test2::API::Stack->new()
           This will create a new empty stack instance. All arguments are ignored.

       $hub = $stack->new_hub()
       $hub = $stack->new_hub(%params)
       $hub = $stack->new_hub(%params, class => $class)
           This  will  generate  a  new  hub  and  push  it  to the top of the stack. Optionally you can provide
           arguments that will be passed into the constructor for the Test2::Hub object.

           If you specify the "'class' => $class" argument, the new hub will be an  instance  of  the  specified
           class.

           Unless your parameters specify 'formatter' or 'ipc' arguments, the formatter and IPC instance will be
           inherited from the current top hub. You can set the parameters to "undef" to avoid having a formatter
           or IPC instance.

           If  there  is  no  top hub, and you do not ask to leave IPC and formatter undef, then a new formatter
           will be created, and the IPC instance from Test2::API will be used.

       $hub = $stack->top()
           This will return the top hub from the stack. If there is no top hub yet this will create it.

       $hub = $stack->peek()
           This will return the top hub from the stack. If there is no top hub yet this will return undef.

       $stack->cull
           This will call "$hub->cull" on all hubs in the stack.

       @hubs = $stack->all
           This will return all the hubs in the stack as a list.

       $stack->clear
           This will completely remove all hubs from the stack. Normally you do not want to do this,  but  there
           are a few valid reasons for it.

       $stack->push($hub)
           This will push the new hub onto the stack.

       $stack->pop($hub)
           This  will  pop  a  hub from the stack, if the hub at the top of the stack does not match the hub you
           expect (passed in as an argument) it will throw an exception.

Name

       Test2::API::Stack - Object to manage a stack of Test2::Hub instances.

Source

       The source code repository for Test2 can be found at <https://github.com/Test-More/test-more/>.

Synopsis

           my $stack = Test2::API::Stack->new;
           my $hub = $stack->top;