Activator
view release on metacpan or search on metacpan
lib/Catalyst/Plugin/Activator/Config.pm view on Meta::CPAN
=over 4
=item * C<__HOME__> - replaced with C<$c-E<gt>path_to('')>
=item * C<__path_to(foo/bar)__> - replaced with C<$c-E<gt>path_to('foo/bar')>
=item * C<__literal(__FOO__)__> - leaves __FOO__ alone (allows you to use
C<__DATA__> as a config value, for example)
=back
The parameter list is split on comma (C<,>). You can override this method to
do your own string munging, or you can define your own macros in
C<MyApp-E<gt>config-E<gt>{ 'Plugin::ConfigLoader' }-E<gt>{ substitutions }>.
Example:
MyApp->config->{ 'Plugin::ConfigLoader' }->{ substitutions } = {
baz => sub { my $c = shift; qux( @_ ); }
}
The above will respond to C<__baz(x,y)__> in config strings.
=cut
sub config_substitutions {
my $c = shift;
my $subs = $c->config->{ 'Plugin::ConfigLoader' }->{ substitutions }
|| {};
$subs->{ HOME } ||= sub { shift->path_to( '' ); };
$subs->{ path_to } ||= sub { shift->path_to( @_ ); };
$subs->{ literal } ||= sub { return $_[ 1 ]; };
my $subsre = join( '|', keys %$subs );
for ( @_ ) {
s{__($subsre)(?:\((.+?)\))?__}{ $subs->{ $1 }->( $c, $2 ? split( /,/, $2 ) : () ) }eg;
}
}
=head1 AUTHOR
Brian Cassidy E<lt>bricas@cpan.orgE<gt>
=head1 CONTRIBUTORS
The following people have generously donated their time to the
development of this module:
=over 4
=item * Joel Bernstein E<lt>rataxis@cpan.orgE<gt> - Rewrite to use L<Config::Any>
=item * David Kamholz E<lt>dkamholz@cpan.orgE<gt> - L<Data::Visitor> integration
=back
Work to this module has been generously sponsored by:
=over 4
=item * Portugal Telecom L<http://www.sapo.pt/> - Work done by Joel Bernstein
=back
=head1 COPYRIGHT AND LICENSE
Copyright 2008 by Brian Cassidy
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 SEE ALSO
=over 4
=item * L<Catalyst>
=item * L<Catalyst::Plugin::ConfigLoader::Manual>
=item * L<Config::Any>
=back
=cut
1;
( run in 0.458 second using v1.01-cache-2.11-cpan-df04353d9ac )