DBIx-Class-Tree

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    - The repository has been migrated from subversion to git
    - Optimized is_leaf to not trigger another query if the children
      releationship is prefetched

0.03002 2010-09-23
    - Added various docs
    - Added ordered ancesors (nebulous)

0.03001 2010-04-25
    - Fixed the parents (note the plural) relationship to
      not have cascade_copy set by default

0.03000 2009-08-18
    - Removed EXPERIMENTAL flags, because after 2 years there'd be bugs
      if there were any serious problems. (Ian Wells)
    - Fix borked tests (DBIx-Class 0.081 got rid of the loophole they used)
      (ribasushi)
    - Increase DBIC dependency to 0.08100. (bluefeet)

0.02001 2007-12-16
    - Remove invalid line.

0.02000 2007-10-29
    - Use Module::Install instead of Module::Build.
    - Fixed is_leaf, is_branch, and is_root.
    - Renamed set_primary_ley as set_primary_key.
    - New has_descdendant() method.
    - New repair_tree flag.
    - parent() now repairs the tree if needed/allowed.
    - Do not cascade delete via the parents() relationship.

0.01000 2006-11-06
    - Added is_leaf, is_root, and is_branch to AdjacencyList.
    - Added a validation override for set_primary_key().
    - Removed the _grouping_clause override method.
    - Created a TODO document.
    - attach_child() attach_sibling() now accept more than
      one object to attach.
    - Added tests for Ordered.
    - Renamed Positional as Ordered.

lib/DBIx/Class/Tree/AdjacencyList.pm  view on Meta::CPAN


__PACKAGE__->mk_classdata( '_parent_column' => 'parent_id' );

sub parent_column {
    my $class = shift;
    if (@_) {
        my $parent_col = shift;
        my $primary_col = ($class->primary_columns())[0];
        $class->belongs_to( '_parent' => $class => { "foreign.$primary_col" => "self.$parent_col" } );
        $class->has_many( 'children' => $class => { "foreign.$parent_col" => "self.$primary_col" } );
        $class->has_many( 'parents' => $class => { "foreign.$primary_col" => "self.$parent_col" }, { cascade_delete => 0, cascade_copy => 0 } );
        $class->_parent_column( $parent_col );
        return 1;
    }
    return $class->_parent_column();
}

=head2 repair_tree

  __PACKAGE__->repair_tree( 1 );



( run in 0.574 second using v1.01-cache-2.11-cpan-49f99fa48dc )