1 package App::SCS::Plugin::Feeds;
3 use Module::Runtime qw(use_module);
6 with 'App::SCS::Role::Plugin';
8 has mount_at => (is => 'ro', default => sub { 'feed' });
12 handles => { _feed_http_response => 'feed_http_response' },
15 sub _build_generator {
17 use_module('App::SCS::Plugin::Feeds::Generator')->new(
18 pages => $self->pages,
19 mounted_at => $self->mount_at,
23 sub page_dispatchers {
25 my $base = $self->mount_at;
26 "/${base}/**/" => sub {
27 if (my $conf = $self->config->{$_[1]}) {
28 $conf = { base => $_[1], %$conf };
29 $self->_feed_http_response(200 => $conf => $_[-1]);
36 my $base = $self->mount_at;
37 return map "/${base}/$_/", keys %{$self->config};