diff options
| author | Simon Wistow <simon@thegestalt.org> | 2011-03-07 01:33:58 +0000 |
|---|---|---|
| committer | Robin Edwards <robin.ge@gmail.com> | 2011-03-14 08:55:52 +0000 |
| commit | 9e3c0d991a3703a0d9021b2c9caf93d040c5f3b1 (patch) | |
| tree | 21a8de815b3915d100a67f1643f95a2a6ad64b60 | |
| parent | added skip if riak env not set (diff) | |
| download | net-riak-9e3c0d991a3703a0d9021b2c9caf93d040c5f3b1.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 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; |
