requires => {
'DBIx::Class' => 0.05,
'Catalyst' => 5.64,
- 'UNIVERSAL::require' => 0,
- 'Class::Data::Accessor' => 0,
- 'Class::Accessor::Fast' => 0,
+ 'UNIVERSAL::require' => 0.10,
+ 'Class::Data::Accessor' => 0.02,
+ 'Class::Accessor::Fast' => 0.22,
},
recommends => {
- 'DBIx::Class::Schema::Loader' => '0.01004',
+ 'DBIx::Class::Schema::Loader' => '0.02000',
},
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
-
-0.01 Not yet released
- - First snapshot
+0.04 Mon Feb 13 04:22:49 UTC 2006
+ - First public release
Build.PL
Changes
lib/Catalyst/Helper/Model/DBIC/Schema.pm
-lib/Catalyst/Helper/Model/DBIC/SchemaInlineLoader.pm
+lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm
lib/Catalyst/Model/DBIC/Schema.pm
Makefile.PL
MANIFEST This list of files
---
name: Catalyst-Model-DBIC-Schema
-version: 0.03
+version: 0.04
author:
- 'Brandon L Black, C<blblack@gmail.com>'
abstract: DBIx::Class::Schema Model Class
license: perl
requires:
Catalyst: 5.64
- Class::Accessor::Fast: 0
- Class::Data::Accessor: 0
+ Class::Accessor::Fast: 0.22
+ Class::Data::Accessor: 0.02
DBIx::Class: 0.05
- UNIVERSAL::require: 0
+ UNIVERSAL::require: 0.1
recommends:
- DBIx::Class::Schema::Loader: 0.01004
+ DBIx::Class::Schema::Loader: 0.02000
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::Helper::Model::DBIC::SchemaLoader:
+ file: lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm
Catalyst::Model::DBIC::Schema:
file: lib/Catalyst/Model/DBIC/Schema.pm
- version: 0.03
+ version: 0.04
generated_by: Module::Build version 0.2611
$newconn->connection(...);
DESCRIPTION
+ NOTE: This is the first public release, there's probably a higher than
+ average chance of random bugs and shortcomings: you've been warned.
+
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.
+ Catalyst::Helper::Model::DBIC::SchemaLoader for information on
+ generating these Models via Helper scripts. The latter of the two will
+ also generated a DBIx::Class::Schema::Loader-based Schema class for you.
CONFIG PARAMETERS
schema_class
DBIx::Class, DBIx::Class::Schema, DBIx::Class::Schema::Loader,
Catalyst::Helper::Model::DBIC::Schema,
- Catalyst::Helper::Model::DBIC::SchemaInlineLoader
+ Catalyst::Helper::Model::DBIC::SchemaLoader
AUTHOR
Brandon L Black, "blblack@gmail.com"
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>
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::SchemaLoader>
=head1 AUTHOR
=head1 NAME
-[% class %] - Catalyst DBIC Plain Model
+[% class %] - Catalyst DBIC Schema Model
=head1 SYNOPSIS
=head1 DESCRIPTION
-Catalyst::Model::DBIC::Schema Model
+L<Catalyst::Model::DBIC::Schema> Model using schema
+L<[% schema_class %]>
=head1 AUTHOR
-package Catalyst::Helper::Model::DBIC::SchemaInlineLoader;
+package Catalyst::Helper::Model::DBIC::SchemaLoader;
use strict;
use warnings;
=head1 NAME
-Catalyst::Helper::Model::DBIC::SchemaInlineLoader - Helper for AutoLoaded DBIC Schema Models
+Catalyst::Helper::Model::DBIC::SchemaLoader - Helper for AutoLoaded DBIC Schema Models
=head1 SYNOPSIS
- script/create.pl model Foo DBIC::SchemaInlineLoader dsn user password
+ script/myapp_create.pl model Foo DBIC::SchemaLoader dsn user password
Where:
Foo is the short name for the Model class being generated
=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.
+This helper generates two classes:
+
+First, it generates a L<DBIx::Class::Schema::Loader> class at
+F<lib/MyApp/SchemaLoader/Foo.pm> based on your supplied dsn/user/pass.
+
+Then, it generates a L<Catalyst::Model::DBIC::Schema> at
+F<lib/MyApp/M/Foo.pm>, which references the above-generated loader.
Models generated by this Helper require the seperate package
L<DBIx::Class::Schema::Loader> to be installed. It is on the recommended
sub mk_compclass {
my ( $self, $helper, $dsn, $user, $pass ) = @_;
+ $helper->{loader_class} = $helper->{class};
+ $helper->{loader_class} =~ s/\:\:M(?:odel)?\:\:/::SchemaLoader::/;
+ my @loader_parts = split(/\:\:/, $helper->{loader_class});
+ my $loader_file_part = pop @loader_parts;
+
+ my $loader_dir = File::Spec->catfile( $helper->{base}, 'lib', @loader_parts );
+ my $loader_file = File::Spec->catfile( $loader_dir, $loader_file_part . '.pm' );
+
+ $helper->mk_dir($loader_dir);
+
$helper->{dsn} = $dsn || '';
$helper->{user} = $user || '';
$helper->{pass} = $pass || '';
+ $helper->mk_dir( $loader_dir );
+ $helper->render_file( 'loaderclass', $loader_file );
+
+
my $file = $helper->{file};
$helper->render_file( 'compclass', $file );
}
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>
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::Schema>
=head1 AUTHOR
__DATA__
-__compclass__
-package [% %]_[% class %]::Schema;
+__loaderclass__
+package [% loader_class %];
use strict;
use base qw/DBIx::Class::Schema::Loader/;
# debug => 1,
);
+=head1 NAME
+
+[% loader_class %] - Loader-generated DBIx::Class::Schema class
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
+
+=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;
+
+__compclass__
package [% class %];
use strict;
use base 'Catalyst::Model::DBIC::Schema';
__PACKAGE__->config(
- schema_class => '_[% class %]::Schema',
+ schema_class => '[% loader_class %]',
);
=head1 NAME
-[% class %] - Catalyst DBIC Plain Model
+[% class %] - Catalyst DBIC Schema Model
=head1 SYNOPSIS
=head1 DESCRIPTION
-Catalyst::Model::DBIC::Schema Model
+L<Catalyst::Model::DBIC::Schema> Model using L<DBIx::Class::Schema::Loader>
+generated Schema: L<[% loader_class %]>
=head1 AUTHOR
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.03';
+our $VERSION = '0.04';
__PACKAGE__->mk_classaccessor('composed_schema');
__PACKAGE__->mk_accessors('schema');
=head1 DESCRIPTION
+NOTE: This is the first public release, there's probably a higher than
+average chance of random bugs and shortcomings: you've been warned.
+
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.
+L<Catalyst::Helper::Model::DBIC::SchemaLoader> for information
+on generating these Models via Helper scripts. The latter of the two
+will also generated a L<DBIx::Class::Schema::Loader>-based Schema class
+for you.
=head1 CONFIG PARAMETERS
my $schema_class = $self->{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': $@";
- }
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
if( !$self->{connect_info} ) {
if($schema_class->storage && $schema_class->storage->connect_info) {
}
else {
croak "Either ->config->{connect_info} must be defined for $class"
- . " or $schema_class must have connection defined on it";
+ . " or $schema_class must have connect info defined on it";
}
}
L<DBIx::Class>, L<DBIx::Class::Schema>,
L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>,
-L<Catalyst::Helper::Model::DBIC::SchemaInlineLoader>
+L<Catalyst::Helper::Model::DBIC::SchemaLoader>
=head1 AUTHOR