changed the way args are passed to a storage type that needs args so they can be...
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated.pm
index 6408cb4..a70a8b5 100644 (file)
@@ -89,6 +89,18 @@ has 'balancer_type' => (
     },
 );
 
+=head2 balancer_args
+
+Contains a hashref of initialized information to pass to the Balancer object.
+See L<DBIx::Class::Storage::Replicated::Pool> for available arguments.
+
+=cut
+
+has 'balancer_args' => (
+    is=>'ro',
+    isa=>'HashRef',
+);
+
 =head2 pool
 
 Is a <DBIx::Class::Storage::DBI::Replicated::Pool> or derived class.  This is a
@@ -104,8 +116,6 @@ has 'pool' => (
         connect_replicants    
         replicants
         has_replicants
-        num_replicants
-        delete_replicant
     /],
 );
 
@@ -120,6 +130,7 @@ has 'balancer' => (
     is=>'ro',
     isa=>'DBIx::Class::Storage::DBI::Replicated::Balancer',
     lazy_build=>1,
+    handles=>[qw/auto_validate_every/],
 );
 
 =head2 master
@@ -258,7 +269,8 @@ Lazy builder for the L</pool> attribute.
 =cut
 
 sub _build_pool {
-    shift->create_pool;
+       my $self = shift @_;
+    $self->create_pool;
 }
 
 =head2 _build_balancer_type
@@ -268,7 +280,7 @@ Lazy builder for the L</balancer_type> attribute.
 =cut
 
 sub _build_balancer_type {
-    return 'DBIx::Class::Storage::DBI::Replicated::Balancer';
+    return 'DBIx::Class::Storage::DBI::Replicated::Balancer::First';
 }
 
 =head2 _build_balancer
@@ -282,7 +294,8 @@ sub _build_balancer {
     my $self = shift @_;
     $self->create_balancer(
         pool=>$self->pool, 
-        master=>$self->master);
+        master=>$self->master,
+        %{$self->balancer_args},);
 }
 
 =head2 _build_write_handler