NAME

Mojolicious::Plugin::DomIdHelper - Mojolicious plugin to generate DOM IDs and CSS class names from your ORM objects

SYNOPSIS

# Mojolicious
$self->plugin('dom_id_helper');

# Or, your defaults
$self->plugin('dom_id_helper', delimiter => '-')

# Mojolicious::Lite   
plugin 'dom_id_helper';

# Set defaults 
plugin 'dom_id_helper', delimiter => '-'

# Your view
<div id="<%= dom_id($object) %>" class="<%= dom_class($object) %>">
  ...
</div>

<div id="<%= dom_id($object, method => 'name') ) %>">
  ...
</div>

DESCRIPTION

DOM IDs are generated by joining an object's package name and its primary key with the character specified by the "delimiter" option. By default the primary key is retrieved via a method named id, though this can be modified, see "OPTIONS".

By default, given an instance of DB::Package::User with an ID of 1:

dom_id($user)
dom_class($user)

will generate:

user_1 
user

For dom_id, if the primary key is undefined only the package name is returned. If $user is not a reference undef is returned.

Multi-column primary keys are not separated by the "delimiter" option, they are concatenated.

ORMs

The aim is to be ORM agnostic. Just set the "method" option to the name of the method used to retrieve your object's primary key.

Multi-column primary keys returned as array references will cause problems (for now).

OPTIONS

delimiter

plugin 'dom_id_helper', delimiter => '-'

The character used to delimit the object's package name from its primary key. Defaults to '_'.

method

plugin 'dom_id_helper', method => 'name'
plugin 'dom_id_helper', method => [qw{first_name last_name}]

The method used to retrieve the object's primary key. Defaults to 'id'.

keep_namespace

plugin 'dom_id_helper', keep_namespace => 1

Keep the full package name when generating the DOM ID. Defaults to 0 (false).

AUTHOR

Skye Shaw <sshaw AT lucas.cis.temple.edu>

SEE ALSO

Mojolicious and Mojolicious::Plugin::TagHelpers

LICENSE

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