X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FTak%2FRequest.pm;h=abb5ad593f24d80cd2c58d9451c646db17037daa;hb=HEAD;hp=342ddba714c80631a6d4a20291ca9e60847b0433;hpb=31a246e4b1ef71cc1991c1631573f6c80cdf41b5;p=scpubgit%2FTak.git diff --git a/lib/Tak/Request.pm b/lib/Tak/Request.pm index 342ddba..abb5ad5 100644 --- a/lib/Tak/Request.pm +++ b/lib/Tak/Request.pm @@ -7,6 +7,8 @@ has on_progress => (is => 'ro'); has on_result => (is => 'ro', required => 1); +has is_done => (is => 'rw', default => sub { 0 }); + sub progress { my ($self, @report) = @_; if (my $cb = $self->on_progress) { @@ -16,9 +18,15 @@ sub progress { sub result { my ($self, $type, @data) = @_; + $self->is_done(1); $self->on_result->(Tak::Result->new(type => $type, data => \@data)); } +sub flatten { + my ($self) = @_; + return ($self->type, @{$self->data}); +} + sub success { shift->result(success => @_) } sub mistake { shift->result(mistake => @_) } sub failure { shift->result(failure => @_) }