--- /dev/null
+package App::SCS::Plugin::Actions;
+
+use Module::Runtime qw(use_module);
+use IO::All;
+use Moo;
+
+with 'App::SCS::Role::Plugin';
+
+has mount_at => (is => 'ro', default => sub { 'actions' });
+
+has dispatcher => (is => 'lazy', builder => sub {
+ my ($self) = @_;
+ use_module('Plack::App::PSGIBin')->new(
+ root => io->dir($self->app->share_dir)->catdir('actions')
+ );
+});
+
+sub page_dispatchers {
+ my ($self) = @_;
+ my $base = $self->mount_at;
+ "/${base}/..." => sub { $self->dispatcher },
+}
+
+sub provides_pages {
+ my ($self) = @_;
+ return;
+}
+
+1;