NAME
DBIx::Class::Schema::ResultSetAccessors - Short hand ResultSet Accessors
SYNOPSIS
# in your schema class
__PACKAGE__->load_components(qw/
Schema::ResultSetAccessors
/);
__PACKAGE__->load_namespaces;
# in your program
use MyApp::Schema;
my $schema = MyApp::Schema->connect(...);
@artists = $schema->artists->all; # same as $schema->resultset('Artist')->all;
DESCRIPTION
Creates short hand accessor methods for each ResultSet. Accessor names
are properly converted into lowercase and pluralized. E.g.
LinerNote -> liner_notes
Artist -> artists
CD -> cds
METHODS
resultset_accessor_map
Sometimes you will not want to, or will not be able to use an
auto-generated accessor name. A common case would be when the accessor
name conflicts with a built in DBIx::Class::Schema method. E.g. if you
name your Result class "Source", a pluralized version of this would be
"sources", which is a built in method.
This method allows you to redefine the names as you wish. Overload this
method in your schema class and return a hashref map of Source =>
accessor names. E.g.:
# in your MyApp::Schema class
sub resultset_accessor_map {
{
Source => 'my_sources',
Artist => 'my_artists',
}
}
# later in your code
$schema->my_sources->all;
resultset_accessor_name($moniker)
This method is used to generate the accessor names. If you wish to
create your own logic for generating the name, you can overload this
method. The method takes a moniker (aka Source name) as a parameter and
returns the accessor name.
Internally it simply uses String::CamelCase to decamelize the name and
pass it to "pluralize_resultset_accessor_name" method.
pluralize_resultset_accessor_name($decamelized_name)
If you only wish to overload the pluralization of the accessor name, in
case you want to add support for a language other than English, then you
might only want to overload this method. The method accepts decamelized
name (e.g. liner_note) and returns properly pluralized version of it.
SEE ALSO
DBIx::Class
String::CamelCase
Lingua::EN::Inflect::Phrase
AUTHOR
Roman F.
[email protected]
COPYRIGHT
Copyright (c) 2011 Roman F.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included
with this module.