$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.