summary refs log tree commit diff
path: root/lib/Net/Riak/Role/PBC/Link.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/Riak/Role/PBC/Link.pm')
-rw-r--r--lib/Net/Riak/Role/PBC/Link.pm35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/Net/Riak/Role/PBC/Link.pm b/lib/Net/Riak/Role/PBC/Link.pm
new file mode 100644
index 0000000..5e6a336
--- /dev/null
+++ b/lib/Net/Riak/Role/PBC/Link.pm
@@ -0,0 +1,35 @@
+package Net::Riak::Role::PBC::Link;
+use Moose::Role;
+use Net::Riak::Link;
+use Net::Riak::Bucket;
+
+sub _populate_links {
+    my ($self, $object, $links) = @_;
+
+    for my $link (@$links) {
+        my $l = Net::Riak::Link->new(
+            bucket => Net::Riak::Bucket->new(
+                name   => $link->bucket,
+                client => $self
+            ),
+            key => $link->key,
+            tag => $link->tag
+        );
+        $object->add_link($l);
+    }
+}
+
+sub _links_for_message {
+    my ($self, $object) = @_;
+
+    return [
+        map { { 
+                tag => $_->tag, 
+                key => $_->key, 
+                bucket => $_->bucket->name  
+            } 
+        } $object->all_links 
+    ]
+}
+
+1;