X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema.pm;h=c8be34e33f7667b7ed19d0bd11c8c76cc34a55f6;hb=48580715af3072905f2c71dc27e7f70f21a11338;hp=4c3a0ad690122f86fcdbfa54fbfb77eb57357ab5;hpb=d88ecca6486a2b1c4b6e2f0440165b186aab39bc;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Schema.pm b/lib/DBIx/Class/Schema.pm index 4c3a0ad..c8be34e 100644 --- a/lib/DBIx/Class/Schema.pm +++ b/lib/DBIx/Class/Schema.pm @@ -5,7 +5,7 @@ use warnings; use DBIx::Class::Exception; use Carp::Clan qw/^DBIx::Class/; -use Scalar::Util qw/weaken/; +use Scalar::Util (); use File::Spec; use Sub::Name (); use Module::Find(); @@ -82,7 +82,7 @@ particular which module inherits off which. With no arguments, this method uses L to load all your Result classes from a sub-namespace F under your Schema class' -namespace. Eg. With a Schema of I all files in +namespace, i.e. with a Schema of I all files in I are assumed to be Result classes. It also finds all ResultSet classes in the namespace F and @@ -748,7 +748,7 @@ Otherwise, each set of data is inserted into the database using L, and a arrayref of the resulting row objects is returned. -i.e., +e.g. $schema->populate('Artist', [ [ qw/artistid name/ ], @@ -851,7 +851,7 @@ attached to the current schema. It also attaches a corresponding L object to the new $schema object. If C<$additional_base_class> is given, the new composed -classes will inherit from first the corresponding classe from the current +classes will inherit from first the corresponding class from the current schema then the base class. For example, for a schema with My::Schema::CD and My::Schema::Artist classes, @@ -1083,7 +1083,7 @@ sub deployment_statements { $self->storage->deployment_statements($self, @_); } -=head2 create_ddl_dir (EXPERIMENTAL) +=head2 create_ddl_dir =over 4 @@ -1155,7 +1155,7 @@ sub ddl_filename { Provided as the recommended way of thawing schema objects. You can call C directly if you wish, but the thawed objects will not have a -reference to any schema, so are rather useless +reference to any schema, so are rather useless. =cut @@ -1167,8 +1167,8 @@ sub thaw { =head2 freeze -This doesn't actualy do anything more than call L, it is just -provided here for symetry. +This doesn't actually do anything more than call L, it is just +provided here for symmetry. =cut @@ -1178,8 +1178,17 @@ sub freeze { =head2 dclone -Recommeneded way of dcloning objects. This is needed to properly maintain -references to the schema object (which itself is B cloned.) +=over 4 + +=item Arguments: $object + +=item Return Value: dcloned $object + +=back + +Recommended way of dcloning L and L +objects so their references to the schema object +(which itself is B cloned) are properly maintained. =cut @@ -1260,6 +1269,24 @@ sub register_source { $self->_register_source(@_); } +=head2 unregister_source + +=over 4 + +=item Arguments: $moniker + +=back + +Removes the L from the schema for the given moniker. + +=cut + +sub unregister_source { + my $self = shift; + + $self->_unregister_source(@_); +} + =head2 register_extra_source =over 4 @@ -1286,7 +1313,7 @@ sub _register_source { $source = $source->new({ %$source, source_name => $moniker }); $source->schema($self); - weaken($source->{schema}) if ref($self); + Scalar::Util::weaken($source->{schema}) if ref($self); my $rs_class = $source->result_class;