=head1 NAME Mojolicious::Plugin::DomIdHelper - Mojolicious plugin to generate DOM IDs and CSS class names from your ORM objects =head1 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
...
...
=head1 DESCRIPTION DOM IDs are generated by joining an object's package name and its primary key with the character specified by the L option. By default the primary key is retrieved via a method named C. This can be modified, see L. By default, given an instance of C with an ID of C<1>: dom_id($user) dom_class($user) will generate: user_1 user For C, if the primary key is undefined only the package name is returned. If C<$user> is not a reference C is returned. Multi-column primary keys are not separated by the L option, they are concatenated. For references that aren't blessed C and C return the reference type. If Lingua::EN::Inflect is installed array references that contain a blessed reference will return the pluralized form of the blessed reference. For example, if Lingua::EN::Inflect is installed: dom_id([$user]) dom_class([$user]) dom_id([]) dom_id({ user => $user }) dom_id({}) will generate: users users array hash hash If Lingua::EN::Inflect is not installed C will return C. =head1 ORMs The aim is to be ORM agnostic. Just set the L 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). =head1 OPTIONS =head2 C plugin 'dom_id_helper', delimiter => '-' The character used to delimit the object's package name from its primary key. Defaults to C<'_'>. =head2 C 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 C<'id'>. =head2 C plugin 'dom_id_helper', keep_namespace => 1 Keep the full package name when generating the DOM ID. Defaults to C<0> (false). =head1 AUTHOR Skye Shaw =head1 SEE ALSO L and L =head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.