release for 0.07, ->require and connect_info args stuff
[catagits/Catalyst-Model-DBIC-Schema.git] / lib / Catalyst / Model / DBIC / Schema.pm
index 0596b47..e422e88 100644 (file)
@@ -6,7 +6,7 @@ use NEXT;
 use UNIVERSAL::require;
 use Carp;
 
-our $VERSION = '0.02';
+our $VERSION = '0.07';
 
 __PACKAGE__->mk_classaccessor('composed_schema');
 __PACKAGE__->mk_accessors('schema');
@@ -55,16 +55,24 @@ Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
     # 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(...);
 
 =head1 DESCRIPTION
 
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models.
+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::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
 
@@ -165,7 +173,7 @@ sub new {
         }
         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";
         }
     }
 
@@ -176,7 +184,14 @@ sub new {
 
     no strict 'refs';
     foreach my $moniker ($self->schema->sources) {
-        *{"${class}::${moniker}::ACCEPT_CONTEXT"} = sub {
+        my $classname = "${class}::$moniker";
+       $classname->require;
+        if($@ && $@ !~ /^Can't locate /) {
+            croak "Failed to load external class definition"
+                  . "for '$classname': $@";
+        }
+
+        *{"${classname}::ACCEPT_CONTEXT"} = sub {
             shift;
             shift->model($model_name)->resultset($moniker);
         }
@@ -191,8 +206,16 @@ sub connect { shift->composed_schema->connect(@_); }
 
 =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::SchemaLoader>
 
 =head1 AUTHOR