phpMan > perldoc > Test2::API::Stack

Markdown | JSON | MCP    

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

***INTERNALS NOTE***
    The internals of this package are subject to change at any time! The public methods provided
    will not change in backwards incompatible ways, but the underlying implementation details might.
    Do not break encapsulation here!

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.

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

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.

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

MAINTAINERS
    Chad Granum <exodist AT cpan.org>

AUTHORS
    Chad Granum <exodist AT cpan.org>

COPYRIGHT
    Copyright 2020 Chad Granum <exodist AT cpan.org>.

    This program is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself.

    See http://dev.perl.org/licenses/

Generated by phpMan v3.7.7 Author: Che Dong Under GNU General Public License
2026-06-10 06:46 @216.73.217.62
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!