Schema::Loader converted to better inheritance model, no longer pollutes user schema...
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / Writing.pm
index 410ae3f..924a1f2 100644 (file)
@@ -15,32 +15,38 @@ DBIx::Class::Schema::Loader::Writing - Loader subclass writing guide
   # THIS IS JUST A TEMPLATE TO GET YOU STARTED.
 
   use strict;
+  use warnings;
   use base 'DBIx::Class::Schema::Loader::Generic';
-  use Carp;
 
-  sub _loader_db_classes {
+  sub _db_classes {
       return qw/DBIx::Class::PK::Auto::Foo/;
           # You may want to return more, or less, than this.
   }
 
-  sub _loader_tables {
-      my $class = shift;
-      my $dbh = $class->storage->dbh;
+  sub _tables {
+      my $self = shift;
+      my $dbh = $self->schema->storage->dbh;
       return $dbh->tables; # Your DBD may need something different
   }
 
-  sub _loader_table_info {
-      my ( $class, $table ) = @_;
+  sub _table_info {
+      my ( $self, $table ) = @_;
       ...
       return ( \@cols, \@primary );
   }
 
-  sub _loader_relationships {
-      my $class = shift;
+  sub _load_relationships {
+      my $self = shift;
       ...
-      $class->_loader_make_relations($table, $f_key, $f_table, $f_column);
-          # For each relationship you want to set up ($f_column is
-          # optional, default is $f_table's primary key)
+
+      # make a simple relationship, where $table($column)
+      #  references the PK of $f_table:
+      $self->_make_simple_rel($table, $f_table, $column);
+
+      # make a relationship with a complex condition-clause:
+      $self->_make_cond_rel($table, $f_table,
+          { foo => bar, baz => xaa } );
+
       ...
   }