NAME
Mojolicious::Plugin::Parametry - Mojolicious plugin providing param helpers
SYNOPSIS
$self->plugin('Parametry');
# Trim whitespace on the value of param `the_test_param` and
# set it to empty string if it doesn't exist:
my $p = $self->P->the_test_param;
# Access `matching` param helper, to gather all params starting with `foo_`
my $ps = $self->PP->matching('foo_');
# These are regular helpers, and so available inside templates too:
<p>Param meow_meow has value <%= P->meow_meow %></p>
<p>Meowy params: <%= PP->matching(qr/meow/, vals => 1)->join(', ') %></p>
# And if you're not a fan of 1-letter helper names, you can change them:
$self->plugin(Parametry
=> shortcut_key => 'paramer', helpers_key => 'param_helpers');
my $par_val = $self->paramer->the_test;
my $params = $self->param_helpers->matching(qr/^foo_/);
DESCRIPTION
Mojolicious::Plugin::Parametry is a Mojolicious plugin that provides a simpler (to a taste) way to access parameter values as well as a set of helpers for managing params and their values.
CAVEATS
No testing or support has been made for handling multi-value params. Some helpers provided by the plugin only support params named with valid Perl method named.
METHODS
Mojolicious::Plugin::Parametry inherits all methods from Mojolicious::Plugin and implements the following new ones.
register
$plugin->register(Mojolicious->new);
Register plugin in Mojolicious application.
HELPERS
P
$c->P->some_param_value;
# Equivalent to:
# ($c->param('some_param_value') // '') =~ s/^\s+|\s+$//gr;
This is the default name for the Paramer shortcut param access helper and can be changed using shortcut_key
plugin configuration key.
To access a param value, make a method call on the object returned by this helper, with the name of the method matching the name of the param. If param value is `undef`, the helper will set it to an emptry string. The helper will also trim leading and trailing whitespace.
CAVEATS: this helper can be used to access only params named with valid Perl method names and no support for other names is currently planned.
P
$c->PP
Provides access to Mojolicious::Plugin::Parametry::ParamerHelpers object, initialized with the current controller object. Available methods are:
matching
$c->PP->matching('foo_'); # all param names starting with 'foo_'
# all param values of params whose name match regex /foo/
$c->PP->matching(qr/foo/, vals => 1);
# all param names starting with 'foo_', with 'foo_' stripped from names
$c->PP->matching('foo_', strip => 1);
# all param names starting with 'foo_', with 'foo_' changed to 'bar_'
$c->PP->matching('foo_', subst => 'bar_');
# all param names starting with 'foo_', with 'foo_' changed to 'bar_'
# returned together with their values, as a hashref
$c->PP->matching('foo_', subst => 'bar_', as_hash => 1);
Gathers matching params, optionally complemented with their values, and returns them as a Mojo::Collection (or a hashref, if as_hash
is set), optionally manipulating the names. Available args:
first positional
$c->PP->matching('foo_');
$c->PP->matching(qr/foo.+bar/);
Mandatory. Specifies the matcher for parameter name matching. Takes either a Regexp
object or a plain string. String match is anchored to the start of the parameter name ('fo.o'
is equivalent to qr/^fo\.o/
).
vals
$c->PP->matching(qr/foo/, vals => 1);
Optional. Causes the method to return a Mojo::Collection of the values of parameter whose names match the matcher.
as_hash
$c->PP->matching(qr/foo/, as_hash => 1);
Optional. Causes the method to return a hashref where keys are parameter names and values are parameter values. No attempt to handle multi-value parameters is done. This argument takes precedence over vals
arugment.
subst
# all param names starting with 'foo_', with 'foo_' changed to 'bar_'
$c->PP->matching('foo_', subst => 'bar_');
Optional. Replaces the matching part of parameter names with the provided replacement. When used with as_hash
, the modified names will become the new keys (the values are still obtained from original param names)
subst
# all param names starting with 'foo_', with 'foo_' stripped from names
$c->PP->matching('foo_', strip => 1);
Optional. Alternative way of specifying subst => ''
REPOSITORY
Fork this module on GitHub: https://github.com/zoffixznet/Mojolicious-Plugin-Parametry
BUGS
To report bugs or request features, please use https://github.com/zoffixznet/Mojolicious-Plugin-Parametry/issues
If you can't access GitHub, you can email your request to bug-mojolicious-plugin-parametry at rt.cpan.org
AUTHOR
Zoffix Znet zoffix at cpan.org
, (https://zoffix.com/)
LICENSE
You can use and distribute this module under the same terms as Perl itself. See the LICENSE
file included in this distribution for complete details.