1) changed all 4 space indentation to 2 space style indents for replication code...
[dbsrgits/DBIx-Class-Historic.git] / lib / DBIx / Class / Schema.pm
index c3ce0e6..cbcddbc 100644 (file)
@@ -637,9 +637,9 @@ sub setup_connection_class {
 
 =over 4
 
-=item Arguments: $storage_type|[$storage_type, \%args]
+=item Arguments: $storage_type|{$storage_type, \%args}
 
-=item Return Value: $storage_type|[$storage_type, \%args]
+=item Return Value: $storage_type|{$storage_type, \%args}
 
 =back
 
@@ -655,8 +655,10 @@ C<::DBI::Sybase::MSSQL>.
 
 If your storage type requires instantiation arguments, those are defined as a 
 second argument in the form of a hashref and the entire value needs to be
-wrapped into an arrayref.  See L<DBIx::Class::Storage::DBI::Replicated> for an
-example of this.
+wrapped into an arrayref or a hashref.  We support both types of refs here in
+order to play nice with your Config::[class] or your choice.
+
+See L<DBIx::Class::Storage::DBI::Replicated> for an example of this.
 
 =head2 connection
 
@@ -682,7 +684,7 @@ sub connection {
   return $self if !@info && $self->storage;
   
   my ($storage_class, $args) = ref $self->storage_type ? 
-    (@{$self->storage_type},{}) : ($self->storage_type, {});
+    ($self->_normalize_storage_type($self->storage_type),{}) : ($self->storage_type, {});
     
   $storage_class = 'DBIx::Class::Storage'.$storage_class
     if $storage_class =~ m/^::/;
@@ -696,6 +698,17 @@ sub connection {
   return $self;
 }
 
+sub _normalize_storage_type {
+  my ($self, $storage_type) = @_;
+  if(ref $storage_type eq 'ARRAY') {
+    return @$storage_type;
+  } elsif(ref $storage_type eq 'HASH') {
+    return %$storage_type;
+  } else {
+    $self->throw_exception('Unsupported REFTYPE given: '. ref $storage_type);
+  }
+}
+
 =head2 connect
 
 =over 4
@@ -1036,7 +1049,9 @@ produced include a DROP TABLE statement for each table created.
 
 Additionally, the DBIx::Class parser accepts a C<sources> parameter as a hash 
 ref or an array ref, containing a list of source to deploy. If present, then 
-only the sources listed will get deployed.
+only the sources listed will get deployed. Furthermore, you can use the
+C<add_fk_index> parser parameter to prevent the parser from creating an index for each
+FK.
 
 =cut
 
@@ -1090,6 +1105,8 @@ override this method in your schema if you would like a different file
 name format. For the ALTER file, the same format is used, replacing
 $version in the name with "$preversion-$version".
 
+See L<DBIx::Class::Schema/deploy> for details of $sqlt_args.
+
 If no arguments are passed, then the following default values are used:
 
 =over 4