I found myself needing to set different Schema + result class base
classes, any opinions? (See patch).
Jess
diff -r -u ./lib/DBIx/Class/Schema/Loader/Base.pm
/usr/src/perl/dbix-class/bast/trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm
--- ./lib/DBIx/Class/Schema/Loader/Base.pm 2008-03-30 18:00:47.000000000
+0100
+++
/usr/src/perl/dbix-class/bast/trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader/Base.pm
2008-03-30 16:58:58.000000000 +0100
@@ -19,11 +19,13 @@
__PACKAGE__->mk_ro_accessors(qw/
schema
schema_class
+ schema_base_class
exclude
constraint
additional_classes
additional_base_classes
+ dbic_base_class
left_base_classes
components
resultset_components
@@ -445,6 +447,7 @@
my $target_dir = $self->dump_directory;
my $schema_class = $self->schema_class;
+ my $schema_base = $self->schema_base_class || 'DBIx::Class::Schema';
croak "Must specify target directory for dumping!" if ! $target_dir;
@@ -452,8 +455,8 @@
my $schema_text =
qq|package $schema_class;\n\n|
- . qq|use strict;\nuse warnings;\n\n|
- . qq|use base 'DBIx::Class::Schema';\n\n|;
+ . qq|use strict;\nuse warnings;\n\n|
+ . qq|use base '$schema_base';\n\n|;
if ($self->use_namespaces) {
@@ -479,8 +482,8 @@
foreach my $src_class (sort keys %{$self->{_dump_storage}}) {
my $src_text =
qq|package $src_class;\n\n|
- . qq|use strict;\nuse warnings;\n\n|
- . qq|use base 'DBIx::Class';\n\n|;
+ . qq|use strict;\nuse warnings;\n\n|;
+# . qq|use base '$dbic_base';\n\n|;
$self->_write_classfile($src_class, $src_text);
}
@@ -598,6 +601,7 @@
my $schema = $self->schema;
my $schema_class = $self->schema_class;
+ my $dbic_base = $self->dbic_base_class || 'DBIx::Class';
my $table_moniker = $self->_table2moniker($table);
my @result_namespace = ($schema_class);
@@ -623,6 +627,7 @@
{ no strict 'refs'; @{"${table_class}::ISA"} = qw/DBIx::Class/ }
$self->_use ($table_class, @{$self->additional_classes});
+ $self->_inject($table_class, $dbic_base);
$self->_inject($table_class, @{$self->additional_base_classes});
$self->_dbic_stmt($table_class, 'load_components', @{$self->components},
'Core');
diff -r -u ./lib/DBIx/Class/Schema/Loader.pm
/usr/src/perl/dbix-class/bast/trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader.pm
--- ./lib/DBIx/Class/Schema/Loader.pm 2008-03-30 18:00:47.000000000 +0100
+++
/usr/src/perl/dbix-class/bast/trunk/DBIx-Class-Schema-Loader/lib/DBIx/Class/Schema/Loader.pm
2008-03-25 23:53:19.000000000 +0000
@@ -106,7 +106,9 @@
$args->{dump_directory} ||= $self->dump_to_dir;
# XXX this only works for relative storage_type, like ::DBI ...
- my $impl = "DBIx::Class::Schema::Loader" . $self->storage_type;
+# my $impl = "DBIx::Class::Schema::Loader" . $self->storage_type;
+ my $impl = $args->{loader_class}
+ || "DBIx::Class::Schema::Loader" . $self->storage_type;
$impl->require or
croak qq/Could not load storage_type loader "$impl": / .
qq/"$UNIVERSAL::require::ERROR"/;
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]