=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.