X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;fp=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;h=c6b89dd2d92da12d2e8d7558be30dcf989346f10;hb=9c9c2f2b79ade1740e330c758bfc0d65446c5fd6;hp=fada2beb2393634e0161e061776b22c0ccbb0866;hpb=76c488a69ac174f40860cfbae3faf5d1a72d2be8;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/Base.pm b/lib/DBIx/Class/Schema/Loader/Base.pm index fada2be..c6b89dd 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -39,6 +39,8 @@ __PACKAGE__->mk_ro_accessors(qw/ result_namespace resultset_namespace default_resultset_class + schema_base_class + result_base_class db_schema _tables @@ -120,6 +122,14 @@ L. As L above, but for singularizing relationship names. Default behavior is to utilize L. +=head2 schema_base_class + +Base class for your schema classes. Defaults to 'DBIx::Class::Schema'. + +=head2 result_base_class + +Base class for your table classes (aka result classes). Defaults to 'DBIx::Class'. + =head2 additional_base_classes List of additional base classes all of your table classes will use. @@ -445,6 +455,7 @@ sub _dump_to_dir { my $target_dir = $self->dump_directory; my $schema_class = $self->schema_class; + my $schema_base_class = $self->schema_base_class || 'DBIx::Class::Schema'; croak "Must specify target directory for dumping!" if ! $target_dir; @@ -453,7 +464,7 @@ sub _dump_to_dir { 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 base '$schema_base_class';\n\n|; if ($self->use_namespaces) { @@ -476,11 +487,13 @@ sub _dump_to_dir { $self->_write_classfile($schema_class, $schema_text); + my $result_base_class = $self->result_base_class || 'DBIx::Class'; + 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 base '$result_base_class';\n\n|; $self->_write_classfile($src_class, $src_text); }