clone_or_self
[scpubgit/Tak.git] / lib / Tak / WeakClient.pm
index dd4ae0e..3beb39c 100644 (file)
@@ -6,4 +6,13 @@ extends 'Tak::Client';
 
 has service => (is => 'ro', required => 1, weak_ref => 1);
 
+sub clone_or_self {
+  my ($self) = @_;
+  my $new = $self->service->clone_or_self;
+  ($new ne $self->service
+    ? 'Tak::Client'
+    : ref($self))->new(service => $new, curried => [ @{$self->curried} ]);
+}
+    
+
 1;