factor dispatcher out into Web::Dispatch
[catagits/Web-Simple.git] / lib / Web / Simple / DispatchNode.pm
1 package Web::Simple::DispatchNode;
2
3 use Moo;
4
5 extends 'Web::Dispatch::Node';
6
7 has _app_object => (is => 'ro', init_arg => 'app_object', required => 1);
8
9 around _curry => sub {
10   my ($orig, $self) = (shift, shift);
11   my $app = $self->_app_object;
12   my $class = ref($app);
13   my $inner = $self->$orig($app, @_);
14   sub {
15     no strict 'refs';
16     local *{"${class}::self"} = \$app;
17     $inner->(@_);
18   }
19 };
20
21 1;