From 9e3c0d991a3703a0d9021b2c9caf93d040c5f3b1 Mon Sep 17 00:00:00 2001 From: Simon Wistow Date: Mon, 7 Mar 2011 01:33:58 +0000 Subject: Fix remove_link --- lib/Net/Riak/Object.pm | 7 +++++-- t/90_bug_links.t | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/Net/Riak/Object.pm b/lib/Net/Riak/Object.pm index 5efe5f9..1d2b56a 100644 --- a/lib/Net/Riak/Object.pm +++ b/lib/Net/Riak/Object.pm @@ -256,8 +256,11 @@ sub add_link { } sub remove_link { - my ($self, $link) = @_; - # XXX purge links! + my ($self, $link) = @_; + my @links = grep { $_->key ne $link->key } @{$self->links}; + $self->_clear_links; + $self->append_link($_) for @links; + $self; } sub add { diff --git a/t/90_bug_links.t b/t/90_bug_links.t index 1c209eb..0c464ba 100644 --- a/t/90_bug_links.t +++ b/t/90_bug_links.t @@ -60,4 +60,7 @@ my $links = $test_links->links; is $links->[0]->key, 'griffinp', 'good owner for first link'; is $links->[1]->key, 'griffins', 'good owner for second link'; +$test_links->remove_link($links->[0]); +$links = $test_links->links; +is $links->[0]->key, 'griffins', 'good owner for second link after a remove link'; done_testing; -- cgit 1.4.1