#!/usr/bin/perl
use strict;
use Continuity;
{
package Continuity::Widget;
use Moose;
use Coro::Continuation;
use Data::UUID;
has 'uuid' => (
is => 'ro',
isa => 'Str',
default => sub { Data::UUID->new->create_str }
);
has 'output' => (is => 'rw', isa => 'Str', default => '');
has 'cont' => (is => 'rw');
has 'request' => (is => 'rw');
sub process {
my ($self) = @_;
$self->{cont} ||= continuation { $self->main };
$self->{cont}->();
}
sub next {
my ($self) = @_;
yield;
}
package Sticky;
use Moose;
extends 'Continuity::Widget';
has 'contents' => (is => 'rw', isa => 'Str', default => '');
sub main {
my ($self) = @_;
while(1) {
$self->output(q{
Note:
} . $self->contents . q{}); # Look to see if there is something for specifically us to do do { $self->next } until ($self->request->param('uuid') eq $self->uuid); $self->output(q{ Note: