diff options
| author | Simon Wistow <simon@thegestalt.org> | 2011-03-07 01:33:58 +0000 |
|---|---|---|
| committer | Simon Wistow <simon@thegestalt.org> | 2011-03-07 01:33:58 +0000 |
| commit | a1ba8869c54673400beddff04816c2d2c4a06957 (patch) | |
| tree | 0b3810b1a28e97f3a620358c0bb34e6e9196e8d9 | |
| parent | updated change log (diff) | |
| download | net-riak-a1ba8869c54673400beddff04816c2d2c4a06957.tar.gz | |
Fix remove_link
| -rw-r--r-- | lib/Net/Riak/Object.pm | 7 | ||||
| -rw-r--r-- | 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 e1f71db..dd7cc84 100644 --- a/t/90_bug_links.t +++ b/t/90_bug_links.t @@ -59,4 +59,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; |
