[Bast-commits] r8197 - in branches/DBIx-Class-Schema-Loader/skip_load_external: lib/DBIx/Class/Schema/Loader t t/lib t/lib/DBICTest t/lib/DBICTest/Schema t/lib/DBICTest/Schema/13 t/lib/DBICTest/Schema/14

jhannah at dev.catalyst.perl.org jhannah at dev.catalyst.perl.org
Thu Dec 31 02:00:49 GMT 2009


Author: jhannah
Date: 2009-12-31 02:00:47 +0000 (Thu, 31 Dec 2009)
New Revision: 8197

Added:
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/13/
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/13/Foo.pm
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/14/
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/14/Foo.pm
Modified:
   branches/DBIx-Class-Schema-Loader/skip_load_external/lib/DBIx/Class/Schema/Loader/Base.pm
   branches/DBIx-Class-Schema-Loader/skip_load_external/t/20invocations.t
Log:
Added skip_load_external()


Modified: branches/DBIx-Class-Schema-Loader/skip_load_external/lib/DBIx/Class/Schema/Loader/Base.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/skip_load_external/lib/DBIx/Class/Schema/Loader/Base.pm	2009-12-30 22:04:48 UTC (rev 8196)
+++ branches/DBIx-Class-Schema-Loader/skip_load_external/lib/DBIx/Class/Schema/Loader/Base.pm	2009-12-31 02:00:47 UTC (rev 8197)
@@ -30,6 +30,7 @@
                                 components
                                 resultset_components
                                 skip_relationships
+                                skip_load_external
                                 moniker_map
                                 inflect_singular
                                 inflect_plural
@@ -83,6 +84,11 @@
 Skip setting up relationships.  The default is to attempt the loading
 of relationships.
 
+=head2 skip_load_external
+
+Skip loading of other classes in @INC. The default is to merge all other classes
+with the same name found in @INC into the schema file we are creating.
+
 =head2 naming
 
 Static schemas (ones dumped to disk) will, by default, use the new-style 0.05XXX
@@ -479,6 +485,8 @@
 sub _load_external {
     my ($self, $class) = @_;
 
+    return if $self->{skip_load_external};
+
     # so that we don't load our own classes, under any circumstances
     local *INC = [ grep $_ ne $self->dump_directory, @INC ];
 

Modified: branches/DBIx-Class-Schema-Loader/skip_load_external/t/20invocations.t
===================================================================
--- branches/DBIx-Class-Schema-Loader/skip_load_external/t/20invocations.t	2009-12-30 22:04:48 UTC (rev 8196)
+++ branches/DBIx-Class-Schema-Loader/skip_load_external/t/20invocations.t	2009-12-31 02:00:47 UTC (rev 8197)
@@ -103,14 +103,38 @@
             [ $make_dbictest_db::dsn ],
         );
         DBICTest::Schema::12->clone;
-    }
+    },
+    'skip_load_external_1' => sub {
+        # By default we should pull in t/lib/DBICTest/Schema/13/Foo.pm $skip_me since t/lib is in @INC
+        use DBIx::Class::Schema::Loader;
+        DBIx::Class::Schema::Loader::make_schema_at(
+            'DBICTest::Schema::13',
+            { really_erase_my_files => 1, naming => 'current' },
+            [ $make_dbictest_db::dsn ],
+        );
+        DBICTest::Schema::13->clone;
+    },
+    'skip_load_external_2' => sub {
+        # When we explicitly skip_load_external t/lib/DBICTest/Schema/14/Foo.pm should be ignored
+        use DBIx::Class::Schema::Loader;
+        DBIx::Class::Schema::Loader::make_schema_at(
+            'DBICTest::Schema::14',
+            { really_erase_my_files => 1, naming => 'current', skip_load_external => 1 },
+            [ $make_dbictest_db::dsn ],
+        );
+        DBICTest::Schema::14->clone;
+    },
 );
 
 # 4 tests per k/v pair
-plan tests => 2 * @invocations;
+plan tests => 2 * @invocations + 2;  # + 2 more manual ones below.
 
 while(@invocations >= 2) {
     my $style = shift @invocations;
     my $subref = shift @invocations;
     test_schema($style, &$subref);
 }
+
+is($DBICTest::Schema::13::Foo::skip_me, "bad mojo", "skip_load_external_1 skip_me");
+is($DBICTest::Schema::14::Foo::skip_me, undef,      "skip_load_external_2 skip_me");
+

Added: branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/13/Foo.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/13/Foo.pm	                        (rev 0)
+++ branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/13/Foo.pm	2009-12-31 02:00:47 UTC (rev 8197)
@@ -0,0 +1,3 @@
+package DBICTest::Schema::13::Foo;
+our $skip_me = "bad mojo";
+1;

Added: branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/14/Foo.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/14/Foo.pm	                        (rev 0)
+++ branches/DBIx-Class-Schema-Loader/skip_load_external/t/lib/DBICTest/Schema/14/Foo.pm	2009-12-31 02:00:47 UTC (rev 8197)
@@ -0,0 +1,3 @@
+package DBICTest::Schema::14::Foo;
+our $skip_me = "bad mojo";
+1;




More information about the Bast-commits mailing list