'Class::Data::Accessor' => 0,
'Class::Accessor::Fast' => 0,
},
+ recommends => {
+ 'DBIx::Class::Schema::Loader' => '0.01004',
+ },
build_requires => {
'Test::More' => 0.32,
},
Revision history for Perl extension Catalyst::Model::DBIC::Schema
+0.03 Not yet released
+ - YAS... added support for inline Schema::Loader via C::H::M::DBIC::SchemaInlineLoader
+
0.02 Not yet released
- Another snapshot
Build.PL
Changes
lib/Catalyst/Helper/Model/DBIC/Schema.pm
+lib/Catalyst/Helper/Model/DBIC/SchemaInlineLoader.pm
lib/Catalyst/Model/DBIC/Schema.pm
Makefile.PL
MANIFEST This list of files
\.bak$
\#$
\b\.#
+
+# avoid dist files
+\.tar\.gz$
---
name: Catalyst-Model-DBIC-Schema
-version: 0.02
+version: 0.03
author:
- 'Brandon L Black, C<blblack@gmail.com>'
abstract: DBIx::Class::Schema Model Class
Class::Data::Accessor: 0
DBIx::Class: 0.05
UNIVERSAL::require: 0
+recommends:
+ DBIx::Class::Schema::Loader: 0.01004
build_requires:
Test::More: 0.32
provides:
Catalyst::Helper::Model::DBIC::Schema:
file: lib/Catalyst/Helper/Model/DBIC/Schema.pm
+ Catalyst::Helper::Model::DBIC::SchemaInlineLoader:
+ file: lib/Catalyst/Helper/Model/DBIC/SchemaInlineLoader.pm
Catalyst::Model::DBIC::Schema:
file: lib/Catalyst/Model/DBIC/Schema.pm
- version: 0.02
+ version: 0.03
generated_by: Module::Build version 0.2611
# or, if your schema works on different storage drivers:
my $newconn = $c->model('Foo')->composed_schema->clone();
$newconn->storage_type('::LDAP');
- $newconn->connect(...);
+ $newconn->connection(...);
# and again, a convenience shortcut
my $newconn = $c->model('Foo')->clone();
$newconn->storage_type('::LDAP');
- $newconn->connect(...);
+ $newconn->connection(...);
DESCRIPTION
- This is a Catalyst Model for DBIx::Class::Schema-based Models.
+ This is a Catalyst Model for DBIx::Class::Schema-based Models. See the
+ documentation for Catalyst::Helper::Model::DBIC::Schema and
+ Catalyst::Helper::Model::DBIC::SchemaInlineLoader for information on
+ generating these Models via Helper scripts.
CONFIG PARAMETERS
schema_class
Shortcut for ->schema->resultset
SEE ALSO
- Catalyst, DBIx::Class, DBIx::Class::Schema, DBIx::Class::Schema::Loader
+ General Catalyst Stuff:
+
+ Catalyst::Manual, Catalyst::Test, Catalyst::Request, Catalyst::Response,
+ Catalyst::Helper, Catalyst,
+
+ Stuff related to DBIC and this Model style:
+
+ DBIx::Class, DBIx::Class::Schema, DBIx::Class::Schema::Loader,
+ Catalyst::Helper::Model::DBIC::Schema,
+ Catalyst::Helper::Model::DBIC::SchemaInlineLoader
AUTHOR
Brandon L Black, "blblack@gmail.com"
=head1 DESCRIPTION
-Helper for the DBIC Plain Models.
+Helper for the DBIC Schema Models.
=head2 METHODS
=head1 SEE ALSO
+General Catalyst Stuff:
+
L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::SchemaInlineLoader>
=head1 AUTHOR
--- /dev/null
+package Catalyst::Helper::Model::DBIC::SchemaInlineLoader;
+
+use strict;
+use warnings;
+use Carp;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::SchemaInlineLoader - Helper for AutoLoaded DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/create.pl model Foo DBIC::SchemaInlineLoader dsn user password
+
+ Where:
+ Foo is the short name for the Model class being generated
+ dsn, user, and password are the connection info
+
+=head1 DESCRIPTION
+
+This helper generates a Catalyst::Model::DBIC::Schema class based upon a
+generated inline DBIx::Class::Schema::Loader definition. Nothing external
+to the generated class is required.
+
+Models generated by this Helper require the seperate package
+L<DBIx::Class::Schema::Loader> to be installed. It is on the recommended
+list for this package, but is not required for installation.
+
+=head2 METHODS
+
+=head3 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ( $self, $helper, $dsn, $user, $pass ) = @_;
+
+ $helper->{dsn} = $dsn || '';
+ $helper->{user} = $user || '';
+ $helper->{pass} = $pass || '';
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::SchemaInlineLoader>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack@gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+__compclass__
+package [% %]_[% class %]::Schema;
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->load_from_connection(
+ dsn => '[% dsn %]',
+ user => '[% user %]',
+ pass => '[% pass %]',
+ options => {
+ RaiseError => 1,
+ PrintError => 0,
+ ShowErrorStatement => 1,
+ TraceLevel => 0,
+ AutoCommit => 1,
+ },
+ relationships => 1,
+ # debug => 1,
+);
+
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '_[% class %]::Schema',
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Plain Model
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Catalyst::Model::DBIC::Schema Model
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
use NEXT;
use UNIVERSAL::require;
+use UNIVERSAL qw/ can /;
use Carp;
-our $VERSION = '0.02';
+our $VERSION = '0.03';
__PACKAGE__->mk_classaccessor('composed_schema');
__PACKAGE__->mk_accessors('schema');
=head1 DESCRIPTION
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models.
+This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
+the documentation for L<Catalyst::Helper::Model::DBIC::Schema> and
+L<Catalyst::Helper::Model::DBIC::SchemaInlineLoader> for information
+on generating these Models via Helper scripts.
=head1 CONFIG PARAMETERS
my $schema_class = $self->{schema_class};
- $schema_class->require
- or croak "Cannot load schema class '$schema_class': $@";
+ # don't require if the class is already loaded...
+ if( !can($schema_class, 'source') ) {
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
+ }
if( !$self->{connect_info} ) {
if($schema_class->storage && $schema_class->storage->connect_info) {
=head1 SEE ALSO
-L<Catalyst>, L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::SchemaInlineLoader>
=head1 AUTHOR