[Jifty-commit] r1563 - in Jifty-DBI/trunk: lib/Jifty/DBI

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Thu Jul 13 17:46:10 EDT 2006


Author: audreyt
Date: Thu Jul 13 17:46:08 2006
New Revision: 1563

Modified:
   Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm
   Jifty-DBI/trunk/t/testmodels.pl

Log:
* Change the schema idiom yet again.  It's now:

    package Sample::Employee;
    use Jifty::DBI::Schema;
    use Jifty::DBI::Record schema {

    column dexterity => type is 'integer';
    column name      => type is 'varchar';

    };


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	Thu Jul 13 17:46:08 2006
@@ -79,6 +79,18 @@
 
 }
 
+sub import {
+    my $class = shift;
+    my ($flag) = @_;
+    if ($class->isa(__PACKAGE__) and defined $flag and $flag eq '-base') {
+        my $descendant = (caller)[0];
+        no strict 'refs';
+        push @{$descendant . '::ISA'}, $class;
+        shift;
+    }
+    $class->SUPER::import(@_);
+}
+
 =head2 id
 
 Returns this row's primary key.

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm	Thu Jul 13 17:46:08 2006
@@ -11,7 +11,7 @@
 
     package Wifty::Model::Page;
     use Jifty::DBI::Schema;
-    use base 'Jifty::DBI::Record' => schema {
+    use Jifty::DBI::Record schema {
     # ... your columns here ...
     };
 
@@ -58,7 +58,11 @@
 Takes a block with schema declarations.  Unimports all helper functions after
 executing the code block.  Usually used at C<BEGIN> time via this idiom:
 
-    use base 'Jifty::DBI::Record' => schema { ... };
+    use Jifty::DBI::Record schema { ... };
+
+If your application subclasses C<::Record>, then write this instead:
+
+    use MyApp::Record schema { ... };
 
 =cut
 
@@ -85,7 +89,7 @@
         undef *{"$from\::$sym"};
     }
 
-    return ();
+    return '-base';
 }
 
 =head2 column

Modified: Jifty-DBI/trunk/t/testmodels.pl
==============================================================================
--- Jifty-DBI/trunk/t/testmodels.pl	(original)
+++ Jifty-DBI/trunk/t/testmodels.pl	Thu Jul 13 17:46:08 2006
@@ -1,6 +1,6 @@
 package Sample::Employee;
 use Jifty::DBI::Schema;
-use base 'Jifty::DBI::Record' => schema {
+use Jifty::DBI::Record schema {
 
 column dexterity => type is 'integer';
 column name      => type is 'varchar';
@@ -9,7 +9,7 @@
 
 package Sample::Address;
 use Jifty::DBI::Schema;
-use base 'Jifty::DBI::Record' => schema {
+use Jifty::DBI::Record schema {
 
 column employee_id =>
   refers_to Sample::Employee;


More information about the Jifty-commit mailing list