package Mason::Plugin::RouterSimple::Interp;
BEGIN {
$Mason::Plugin::RouterSimple::Interp::VERSION = '0.07';
}
use Mason::PluginRole;
use Mason::Util qw(uniq);
use Router::Simple;
after 'modify_loaded_class' => sub {
my ( $self, $compc ) = @_;
if ( my $router_object = $compc->router_object ) {
my $routes = $router_object->{routes};
my @attrs =
uniq( map { @{ $_->{capture} }, $_->{dest} ? keys( %{ $_->{dest} } ) : () } @$routes );
for (@attrs) { s/__splat__/splat/ }
my $meta = $compc->meta;
foreach my $attr (@attrs) {
unless ( $meta->has_attribute($attr) ) {
$meta->add_attribute( $attr => () );
}
}
}
};
1;