View on
MetaCPAN
sshaw > Mojolicious-Plugin-MoreUtilHelpers-0.01 > Mojolicious::Plugin::MoreUtilHelpers

Download:
Mojolicious-Plugin-MoreUtilHelpers-0.01.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source   Latest Release: Mojolicious-Plugin-MoreUtilHelpers-0.06

NAME ^

Mojolicious::Plugin::MoreUtilHelpers - Methods to format, count, sanitize, etc...

SYNOPSIS ^

  # Mojolicious
  $self->plugin('MoreUtilHelpers', %defaults);

  # Mojolicious::Lite
  plugin 'MoreUtilHelpers', %defaults;

  $self->count(10, 'user');     # 10 users
  $self->count([User->new]);    # 1 user
  $self->paragraphs($text);     # <p>line 1</p><p>line 2</p>...
  $self->maxwords('a, b, c', 2) # a, b...
  $self->sanitize($html);       # remove all HTML

  # keep <a> and <p> tags
  $self->sanitize($html, tags => ['a','p']);

  # future calls to param($name[n]) return trimmed values
  $self->trim_param(@names);

METHODS ^

Defaults can be set for certain methods when the plugin is loaded.

  $self->plugin('MoreUtilHelpers', maxwords => { omit => ' [snip]' },
                                   sanitize => { tags => ['code', 'pre', 'a'] });

By default and, unless stated otherwise, no defaults are set. See the method docs for more info.

count

  $self->count(10, 'user');           # 10 users
  $self->count([User->new]);          # 1 user
  $self->count([User->new], 'Luser'); # 1 Luser

Use the singular or plural form of the word based on the number given by the first argument. If a non-empty array of objects are given the lowercase form of the package's basename is used.

maxwords

  $self->maxwords($str, $n);
  $self->maxwords($str, $n, '&hellip;');

Truncate $str after $n words. If $str has more than $n words traling punctuation characters are stripped from the $nth word and '...' is appended. An alternate ommision character can be given as the third option.

Setting Defaults

  $self->plugin('MoreUtilHelpers', maxwords => { omit => ' [snip]', max => 20 });

paragraphs

  $self->paragraphs($text);

Wrap lines seperated by empty \r\n or \n lines in HTML paragraph tags (p). For example: A\r\n\r\nB\r\n would be turned into <p>A\r\n</p><p>B\r\n</p>.

The returned HTML is assumed to be safe and is wrapped in a Mojo::ByteStream.

sanitize

  $self->sanitize($html);
  $self->sanitize($html, tags => ['a','p'], attr => ['href']);

Remove all HTML tags in the string given by $html. If tags and -optionally- attr are given, remove everything but those tags and attributes.

The returned HTML is assumed to be safe and is wrapped in a Mojo::ByteStream.

Setting Defaults

  $self->plugin('MoreUtilHelpers', sanitize => { tags => ['a','p'], attr => ['href'] });

trim_param

  $self->trim_param(@names);

For each param name in @names, make future calls to "param" in Mojolicious::Controller return these params' values without leading and trailing whitespace. In some cases it may be best to add this to your routes via "under" in Mojolicious::Routes:

  my $account = $self->routes->under(sub {
    shift->trim_param('name', 'email', 'phone');
    return 1;
  });

  $account->post('save')->to('account#save');
  $account->post('update')->to('account#update');

Now calling $self->param in these actions for 'name', 'email' or 'phone' will return a trimmed result.

SEE ALSO ^

Lingua::EN::Inflect, Number::Format, List::Cycle

AUTHOR ^

Skye Shaw (skye.shaw [AT] gmail.com)

LICENSE ^

Copyright (c) 2012-2014 Skye Shaw. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: