NAME

   Dancer2::Plugin::DBIx::Class - syntactic sugar for use of DBIx::Class
   in Dancer2

VERSION

   Version 1.0.

SYNOPSIS

       # In your Dancer2 app, without DBIx::Class::Schema::ResultSetNames
       # (but why would you?)
          my $results = resultset('Human')->search( { . . .} );
       #
       # or, with DBIx::Class::Schema::ResultSetNames
          my $results = humans->search( { . . . } );
          my $single_person = human($human_id);

DESCRIPTION

   Dancer2::Plugin::DBIx::Class adds convenience keywords to the DSL for
   Dancer2, in order to make database calls more semantically-friendly.

CONFIGURATION

   The configuration for this plugin can go in your config.yml, or in your
   environment:

       plugins:
         DBIC:
           dsn: dbi:SQLite:dbname=my.db    # Just about any DBI-compatible DSN goes here
           schema_class: MyApp::Schema
           export_prefix: 'db_'            # Optional, unless a table name (singular or plural)
                                           # is also a DSL keyword.

YOU HAVE BEEN WARNED

   The "optional" export_prefix configuration adds the given prefix to the
   ResultSet names, if you are using DBIx::Class::Schema::ResultSetNames.
   It is wise to do this, if you have table names that collide with other
   Dancer2::Core::DSL keywords, or those added by other plugins. It is
   likely that horrible, horrible things will happen to your app if you
   don't take care of this. (session is a good example--ask me know I
   know!)

FUNCTIONS

schema

   This keyword returns the related DBIx::Class::Schema object, ready for
   use.

resultset, rset, rs

   These three keywords are syntactically identical, and, given a name of
   a DBIx::Class::ResultSet object, will return the resultset, ready for
   searching, or any other method you can use on a ResultSet:

       my $cars = rs('Car')->search({ . . .});

NAMED RESULT SETS

   DBIx::Class::Schema::ResultSetNames adds both singular and plural
   method accessors for all resultsets.

   So, instead of this:

       my $result_set = resultset('Author')->search({...});

   you may choose to this:

       my $result_set = authors->search({...});

   And instead of this:

       my $result = resultset('Author')->find($id);

   you may choose to this:

       my $result = author($id)

   The usual caveats apply to find() returning multiple records; that
   behavior is deprecated, so if you try to do something like:

       my $result = author( { first_name => 'John} );

   ...odds are things will blow up in your face a lot. Using a unique key
   in find() is important.

SEE ALSO

     * DBIx::Class::ResultSet

     * DBIx::Class::Schema::ResultSetNames

     * DBIx::Class::Schema

CREDIT WHERE CREDIT IS DUE

   Practically all of this code is the work of Matt Trout
   <https://metacpan.org/author/MSTROUT>. I just tidied things up and
   wrote documentation.

SOURCE

   https://gitlab.com/geekruthie/Dancer2-Plugin-DBIx-Class

HOMEPAGE

   https://metacpan.org/release/Dancer2-Plugin-DBIx-Classs

AUTHOR

   D Ruth Holloway <[email protected]>

COPYRIGHT AND LICENSE

   This software is copyright (c) 2020 by D Ruth Holloway.

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