diff -ru Wiki-Toolkit-Plugin-Categoriser-0.04/Changes Wiki-Toolkit-Plugin-Categoriser-0.05/Changes --- Wiki-Toolkit-Plugin-Categoriser-0.04/Changes Sat May 13 15:33:34 2006 +++ Wiki-Toolkit-Plugin-Categoriser-0.05/Changes Wed Feb 28 02:17:23 2007 @@ -1,3 +1,6 @@ +0.05 + Fix bug - ->categories was picking up out-of-date categories. + 0.04 13 May 2006 Renamed Wiki::Toolkit::Plugin::Categoriser Common subdirectories: Wiki-Toolkit-Plugin-Categoriser-0.04/lib and Wiki-Toolkit-Plugin-Categoriser-0.05/lib Common subdirectories: Wiki-Toolkit-Plugin-Categoriser-0.04/t and Wiki-Toolkit-Plugin-Categoriser-0.05/t Common subdirectories: Wiki-Toolkit-Plugin-Categoriser-0.04/lib/Wiki and Wiki-Toolkit-Plugin-Categoriser-0.05/lib/Wiki Common subdirectories: Wiki-Toolkit-Plugin-Categoriser-0.04/lib/Wiki/Toolkit and Wiki-Toolkit-Plugin-Categoriser-0.05/lib/Wiki/Toolkit Common subdirectories: Wiki-Toolkit-Plugin-Categoriser-0.04/lib/Wiki/Toolkit/Plugin and Wiki-Toolkit-Plugin-Categoriser-0.05/lib/Wiki/Toolkit/Plugin diff -ru Wiki-Toolkit-Plugin-Categoriser-0.04/lib/Wiki/Toolkit/Plugin/Categoriser.pm Wiki-Toolkit-Plugin-Categoriser-0.05/lib/Wiki/Toolkit/Plugin/Categoriser.pm --- Wiki-Toolkit-Plugin-Categoriser-0.04/lib/Wiki/Toolkit/Plugin/Categoriser.pm Sat May 13 16:03:51 2006 +++ Wiki-Toolkit-Plugin-Categoriser-0.05/lib/Wiki/Toolkit/Plugin/Categoriser.pm Wed Feb 28 02:16:42 2007 @@ -3,7 +3,7 @@ use Wiki::Toolkit::Plugin; use vars qw( $VERSION @ISA ); -$VERSION = '0.04'; +$VERSION = '0.05'; @ISA = qw( Wiki::Toolkit::Plugin ); =head1 NAME @@ -124,7 +124,7 @@ sub categories { my ($self, %args) = @_; my $dbh = $self->datastore->dbh; - my $sth = $dbh->prepare( "SELECT metadata_value FROM node INNER JOIN metadata ON (node_id = id) WHERE name = ? AND metadata_type = 'category'" ); + my $sth = $dbh->prepare( "SELECT metadata_value FROM node INNER JOIN metadata ON (node.id = metadata.node_id AND node.version = metadata.version) WHERE name = ? AND metadata_type = 'category'" ); $sth->execute( $args{node} ); my @categories; while ( my ($cat) = $sth->fetchrow_array ) { diff -ru Wiki-Toolkit-Plugin-Categoriser-0.04/t/categoriser.t Wiki-Toolkit-Plugin-Categoriser-0.05/t/categoriser.t --- Wiki-Toolkit-Plugin-Categoriser-0.04/t/categoriser.t Sat May 13 15:30:56 2006 +++ Wiki-Toolkit-Plugin-Categoriser-0.05/t/categoriser.t Wed Feb 28 02:14:29 2007 @@ -3,7 +3,7 @@ use Test::More; my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker; -plan tests => ( 1 + $iterator->number * 6 ); +plan tests => ( 1 + $iterator->number * 7 ); use_ok( "Wiki::Toolkit::Plugin::Categoriser" ); @@ -41,4 +41,15 @@ my @categories = $categoriser->categories( node => "Calthorpe Arms" ); is_deeply( [ sort @categories ], [ "Pub Food", "Pubs" ], "...->categories returns all categories" ); + + # Make sure we only look at current category data. + my %node_data = $wiki->retrieve_node( "Calthorpe Arms" ); + $wiki->write_node( "Calthorpe Arms", + "Oh noes, they stopped doing food!", + $node_data{checksum}, + { category => [ "Pubs" ] } ) + or die "Can't write node"; + @categories = $categoriser->categories( node => "Calthorpe Arms" ); + is_deeply( \@categories, [ "Pubs" ], + "->categories ignores out-of-date data" ); }