A lot of util helpers for a Mojolicious apps
Switch branches/tags
Nothing to show
Latest commit 26ae87f Mar 31, 2014 Anatoly Sharifulin last version
Failed to load latest commit information.
lib/Mojolicious/Plugin last version Mar 31, 2014
README.pod first commit Sep 22, 2011



Mojolicious::Plugin::UtilHelpers - some util helpers for web development


# Mojolicious

# Mojolicious::Lite
plugin 'util_helpers';


Mojolicous::Plugin::UtilHelpers is a plugin contains util helpers.


Mojolicious::Plugin::UtilHelpers inherits all methods from Mojolicious::Plugin and implements the following new ones.



Register plugin hooks in Mojolicious application.


Common helpers.

  • db


    DB helper, fast access to the dbh of application.

  • conf

    # tmpl
    %= conf('server')->{www}

    Conf helper, fast access to the conf of application.

  • vu

    # tmpl
    %= vu(0)

    Parts of URL path or vitrual URI.


HTTP helpers.

  • is_iphone


    Check User-Agent headers, returns true if ua =~ iPhone or iPod or iPad or CFNetworks.

  • is_mobile_device


    Check User-Agent headers, returns true if ua =~ iPhone or iPod or iPad or Android or BlackBerry or Palm or Mobile.

  • is_mobile


    Check User-Agent headers, same as is_mobile_device without iPad.

  • ip


    Helper returns ip of client, check X-Forwarded-For header, than X-Real-IP header and at last remote address of client.

  • status


    Helper generates a response with any code without body.

  • redirect

    $self->redirect( $url )

    302 redirect, uses return_url helper unless $url.

  • return_url

    $self->return_url( $default_url )

    Helper can return previlous url (same as referer url, exclude login or logout or enter URL). If referer url is empty, return_url returns $default_url or root url '/'.

  • redirect_accel

    $self->redirect_accel( $url, $content_type )

    Helper generates redirect with X-Accel-Redirect and Content-Type headers.

  • xhr_redirect

    $self->xhr_redirect( { ok => 1 }, $redirect_url )

    Helper renders JSON (if request has X-HTTP-Request header) or return redirect helper.

  • get_cookie

    $self->get_cookie( $name )

    Helper returns one value of cookie $name.


Util helpers.

  • check_error

    # tmpl
    %= check_error 'field_name'

    Check stash error, if exists any errors, helper loads 'etc/validate' template and returns value of key 'field_name' in stash 'validate' hash.

  • list_splice

    # tmpl
    % my $new = list_slice $list, $count;

    Helper generates array of array (size is $count).

  • perl2json

    $self->perl2json( $data )

    Helper encodes perl structure to JSON.

  • cat


    Helper includes template file (format is html, handler is ep) without cache template.

  • meta


    Helper uses meta from conf and stash 'meta' if exists and generate new stash 'meta'.

  • page_param

    $self->page_param( $page )

    Helper generates url, replace old page param.


Text and string helpers.

  • format_digital

    %= format_digital 123456

    Helper returns 123 456. Second parameters is separator, default value is space.

  • shorty

    %= shorty $str, $length

    Helper returns short string, $length is length of short string, default value is 20.

  • shorty_fix

    %== shorty_fix $str, $length

    Helper same as shorty, but tries fix bad tags.

  • link_title

    %= link_title $link

    Helper returns ucfirst name of domain.

  • text_url

    %== text_url $text

    Helper returns $text, where links are real href (<a href="$link" target="_blank">$link</a>).

  • paragraph

    %== paragraph $info

    Helper returns text with paragraph (<p />).


New formats for a Mojolicious application.

  • min

    Type is text/html. After static dispatch set stash 'format' as 'min' if request has min parameters.

    Template name is name.min.ep.


Add new shortcut to the routes of application.

  • crud

    Create-read-update-delete routes for admin item.

    $r->crud(blog => 'admin-blog');

    There are a lot of routes:

    GET  /blog -> admin-blog#list (name is admin_blog)
    POST /blog -> admin-blog#listing
    GET  /blog/sort -> admin-blog#sort (admin_blog_sort)
    POST /blog/sort -> admin-blog#sorting
    GET  /blog/add  -> admin-blog#form, stash 'add' => 1 (admin_blog_add)
    POST /blog/add  -> admin-blog#add
    bridge /blog/:id, id => qr/\d+/ -> admin-blog#check
    GET  /blog/:id -> admin-blog#item (admin_blog_item)
    GET  /blog/:id/edit -> admin-blog#form (admin_blog_edit)
    POST /blog/:id/edit -> admin-blog#edit
    GET  /blog/:id/remove -> admin-blog#remove (admin_blog_remove)
    GET  /blog/:id/:filter -> admin-blog#list (admin_blog)


Mojolicious, Mojolicious::Guides, http://mojolicious.org.


Anatoly Sharifulin <sharifulin@gmail.com>


Please report any bugs or feature requests to bug-mojolicious-plugin-UtilHelpers at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.htMail?Queue=Mojolicious-Plugin-UtilHelpers. We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.


Copyright (C) 2010-2011 by Anatoly Sharifulin.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.