Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sshaw/mojolicious-plugin-moreutilhelpers
Methods to format, count, sanitize, etc...
https://github.com/sshaw/mojolicious-plugin-moreutilhelpers
html mojolicious perl pluralization url utilities
Last synced: about 1 month ago
JSON representation
Methods to format, count, sanitize, etc...
- Host: GitHub
- URL: https://github.com/sshaw/mojolicious-plugin-moreutilhelpers
- Owner: sshaw
- Created: 2014-05-31T22:06:30.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-12-01T05:05:53.000Z (about 8 years ago)
- Last Synced: 2024-10-31T16:24:09.759Z (3 months ago)
- Topics: html, mojolicious, perl, pluralization, url, utilities
- Language: Perl
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.pod
- Changelog: Changes
Awesome Lists containing this project
README
=pod
=encoding utf8
=head1 NAME
Mojolicious::Plugin::MoreUtilHelpers - Methods to format, count, sanitize, etc...
=head1 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); #line 1
line 2
...
$self->maxwords('a, b, c', 2) # a, b...
$self->sanitize($html); # remove all HTML# keep and
tags
$self->sanitize($html, tags => ['a','p']);# future calls to param($name[n]) return trimmed values
$self->trim_param(@names);# DWIM Mojo::Collection
$self->collection(@data);
$self->collection($data);=head1 MOJOLICIOUS VERSION
This version requires Mojolicious >= 7.0. If you're using an earlier version of Mojolicious
you must use L
or lower of this module.=head1 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.
=head2 count
$self->count(10, 'user'); # 10 users
$self->count([User->new]); # 1 user
$self->count([User->new], 'Luser'); # 1 LuserUse 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.=head2 collection
$self->collection(1,2,3)
$self->collection([1,2,3]);
$self->collection(undef); # empty collectionDWIM (Bo Bhat B Bean) L creation.
Currently C does not differentiate between C and array ref arguments. For example:$self->c(1)->to_array; # [1]
$self->c([1])->to_array; # [[1]]
$self->c(undef)->to_array; # [undef]
$self->c([1,2,[3]])->to_array; # [[1,2,[3]]]Using C to create a C will give you the following:
$self->collection(1)->to_array; # [1]
$self->collection([1])->to_array; # [1]
$self->collection(undef)->to_array; # []
$self->collection([1,2,[3]])->to_array; # [1,2,[3]]=head3 Making This Behavior The Default
To replace L<< the C helper|Mojolicious::Plugin::DefaultHelpers/c >> with C:
$self->plugin('MoreUtilHelpers', collection => { patch => 1 });
This B replace L.
=head2 maxwords
$self->maxwords($str, $n);
$self->maxwords($str, $n, '…');Truncate C<$str> after C<$n> words. If C<$str> has more than C<$n> words traling
punctuation characters are stripped from the C<$n>th word and C<'...'> is appended.
An alternate ommision character can be given as the third option.=head3 Setting Defaults
$self->plugin('MoreUtilHelpers', maxwords => { omit => ' [snip]', max => 20 });
=head2 paragraphs
$self->paragraphs($text);
Wrap lines seperated by empty C<\r\n> or C<\n> lines in HTML paragraph tags (C
).
For example: C would be turned into C<<A\r\n
B\r\n
>>.The returned HTML is assumed to be safe and is wrapped in a L.
=head2 sanitize
$self->sanitize($html);
$self->sanitize($html, tags => ['a','p'], attr => ['href']);Remove all HTML tags in the string given by C<$html>. If C and -optionally- C
are given, remove everything but those tags and attributes.The returned HTML is assumed to be safe and is wrapped in a L.
=head3 Setting Defaults
$self->plugin('MoreUtilHelpers', sanitize => { tags => ['a','p'], attr => ['href'] });
=head2 trim_param
$self->trim_param(@names);
$self->trim_param(qr{user\.});For each param name in C<@names>, make future calls to L
return these params' values without leading and trailing whitespace. If an element of C<@names>
is a regexp all matching param names will be processed.In some cases it may be best to add this to your routes via L:
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 C<< $self->param >> in these actions for C<'name'>, C<'email'> or C<'phone'> will
return a trimmed result.Leading/trailing whitespace is removed by calling L.
=head1 SEE ALSO
L, L, L, L
=head1 AUTHOR
Skye Shaw (skye.shaw [AT] gmail.com)
=head1 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.
=cut