The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.