20610f6ca86d2535f2dbb65afb9e5db38f9c7909
[dbsrgits/DBIx-Class-Tree.git] / lib / DBIx / Class / Tree.pm
1 package DBIx::Class::Tree;
2 # vim: ts=8:sw=4:sts=4:et
3
4 use strict;
5 use warnings;
6
7 use base qw( DBIx::Class );
8
9 our $VERSION = '0.03002';
10
11 1;
12 __END__
13
14 =head1 NAME
15
16 DBIx::Class::Tree - Manipulate and anaylze tree structured data.
17
18 =head1 DESCRIPTION
19
20 The tree modules provide the tools to represent, modify, and analyze
21 trees of data with DBIx::Class.
22
23 =head1 COMPONENTS
24
25 L<DBIx::Class::Tree::AdjacencyList> - Manage a tree of data using the
26 common adjacency list model.
27
28 L<DBIx::Class::Tree::AdjacencyList::Ordered> - Glue DBIx::Class::Ordered
29 and DBIx::Class::Tree::AdjacencyList together.
30
31 =head1 DAG
32
33 All tree related modules must conform to have and use the basic traversal
34 methods of a DAG.  For the most part this just means that Tree modules
35 must provide the appearance of having multiple parents per node (via a
36 parents() method) but may very well never return more than one parent.
37 All utility modules, such as a Visitor module, should do its best to
38 never assume that a node only has one parent.  There are situations
39 where this is not possible - in those cases the module's documentation
40 should clearly state that it is not compatible with DAGs.
41
42 So far there is no Tree::DAG module, but there will be.  These requirements
43 are vague, and the requirements of Tree modules to be DAG compatible will
44 become more defined in due course.
45
46 =head1 AUTHOR
47
48 Aran Clary Deltac <bluefeet@cpan.org>
49
50 =head1 LICENSE
51
52 You may distribute this code under the same terms as Perl itself.
53