change no sources error to warning, write connect_info to model with no create= option
Rafael Kitover [Sun, 18 Oct 2009 05:15:58 +0000 (05:15 +0000)]
Changes
lib/Catalyst/Helper/Model/DBIC/Schema.pm
lib/Catalyst/Model/DBIC/Schema.pm

diff --git a/Changes b/Changes
index a260616..5ea8956 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,9 @@
 Revision history for Perl extension Catalyst::Model::DBIC::Schema
 
+0.30  
+        - change no sources error to a warning (with a way to turn it off)
+        - write connect_info to Model without a create= option as well
+
 0.29  Mon Sep  7 15:31:29 EDT 2009
         - support for coderef connect_info's
 
index 97f313f..01c0d7d 100644 (file)
@@ -4,7 +4,7 @@ use namespace::autoclean;
 use Moose;
 no warnings 'uninitialized';
 
-our $VERSION = '0.29';
+our $VERSION = '0.30';
 $VERSION = eval $VERSION;
 
 use Carp;
@@ -188,21 +188,21 @@ sub BUILD {
             $self->_parse_loader_args(\@args);
 
             $helper->{loader_args} = $self->_build_helper_loader_args;
+        }
+    }
 
-            my $dbi_dsn_part;
-            if (first { ($dbi_dsn_part) = /^(dbi):/i } @args) {
-                die
+    my $dbi_dsn_part;
+    if (first { ($dbi_dsn_part) = /^(dbi):/i } @args) {
+        die
 qq{DSN must start with 'dbi:' not '$dbi_dsn_part' (case matters!)}
-                    if $dbi_dsn_part ne 'dbi';
+            if $dbi_dsn_part ne 'dbi';
 
-                $helper->{setup_connect_info} = 1;
+        $helper->{setup_connect_info} = 1;
 
-                $helper->{connect_info} =
-                    $self->_build_helper_connect_info(\@args);
+        $helper->{connect_info} =
+            $self->_build_helper_connect_info(\@args);
 
-                $self->_parse_connect_info(\@args);
-            }
-        }
+        $self->_parse_connect_info(\@args);
     }
 
     $helper->{generator} = ref $self;
index e672c31..d9fc47d 100644 (file)
@@ -5,7 +5,7 @@ use mro 'c3';
 extends 'Catalyst::Model';
 with 'CatalystX::Component::Traits';
 
-our $VERSION = '0.29';
+our $VERSION = '0.30';
 $VERSION = eval $VERSION;
 
 use namespace::autoclean;
@@ -546,8 +546,15 @@ sub _install_rs_models {
 
     my @sources = $self->schema->sources;
 
-    die "No sources found (did you forget to define your tables?)"
-        unless @sources;
+    unless (@sources) {
+        warn <<'EOF' unless $ENV{CMDS_NO_SOURCES};
+******************************* WARNING ***************************************
+* No sources found (did you forget to define your tables?)                    *
+*                                                                             *
+* To turn off this warning, set the CMDS_NO_SOURCES environment variable.     *
+*******************************************************************************
+EOF
+    }
 
     foreach my $moniker (@sources) {
         my $classname = "${class}::$moniker";
@@ -640,6 +647,17 @@ sub _pass_options_to_schema {
 
 __PACKAGE__->meta->make_immutable;
 
+=head1 ENVIRONMENT
+
+=over 4
+
+=item CMDS_NO_SOURCES
+
+Set this variable if you will be using schemas with no sources (tables) to
+disable the warning. The warning is there because this is usually a mistake.
+
+=back
+
 =head1 SEE ALSO
 
 General Catalyst Stuff: