C:\Perl_PPM\Bread-Board-0.33\blib/lib/Bread/Board/Traversable.pm



NAME

Bread::Board::Traversable


VERSION

version 0.33


SYNOPSIS

  my $service = $container->fetch('/some/service/path');
  my $root = $service->get_root_container;


DESCRIPTION

This role provides the basic functionality to traverse a container / service tree. Instances of classes consuming this role will get a parent-child relationship between them.


ATTRIBUTES

parent

Weak ref to another the Bread::Board::Traversable manpage object, read/write accessor (although you should probably not change this value directly in normal code).


METHODS

has_parent

Predicate for the parent attribute, true if a parent has been set.

detach_from_parent

Clearer for the parent attribute, you should probably not call this method in normal code.

get_root_container

Returns the farthest ancestor of the invocant, i.e. the top-most container this object is a part of.

fetch

  my $service = $this->fetch('/absolute/path');
  my $service = $this->fetch('relative/path');
  my $service = $this->fetch('../relative/path');

Given a (relative or absolute) path to a service or container, this method walks the tree and returns the the Bread::Board::Service manpage or the Bread::Board::Container manpage instance for that path. Dies if no object can be found for the given path.

Aliases are resolved in this call, by calling aliased_from|Bread::Board::Service::Alias/aliased_from >> until we get an actual service.


AUTHOR

Stevan Little <stevan@iinteractive.com>


BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/stevan/BreadBoard/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.


COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Infinity Interactive.

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

 C:\Perl_PPM\Bread-Board-0.33\blib/lib/Bread/Board/Traversable.pm