[Catalyst-commits] r10532 - in trunk/Catalyst-Model-DBIC-Schema: . lib/Catalyst lib/Catalyst/Model/DBIC lib/Catalyst/Model/DBIC/Schema lib/Catalyst/Model/DBIC/Schema/Trait lib/Catalyst/TraitFor lib/Catalyst/TraitFor/Model lib/Catalyst/TraitFor/Model/DBIC lib/Catalyst/TraitFor/Model/DBIC/Schema

caelum at dev.catalyst.perl.org caelum at dev.catalyst.perl.org
Sun Jun 14 02:49:37 GMT 2009


Author: caelum
Date: 2009-06-14 02:49:36 +0000 (Sun, 14 Jun 2009)
New Revision: 10532

Added:
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm
Removed:
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Caching.pm
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Replicated.pm
Modified:
   trunk/Catalyst-Model-DBIC-Schema/Makefile.PL
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema.pm
   trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Types.pm
Log:
switch to CX::Component::Traits

Modified: trunk/Catalyst-Model-DBIC-Schema/Makefile.PL
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/Makefile.PL	2009-06-14 02:40:06 UTC (rev 10531)
+++ trunk/Catalyst-Model-DBIC-Schema/Makefile.PL	2009-06-14 02:49:36 UTC (rev 10532)
@@ -3,9 +3,9 @@
 name 'Catalyst-Model-DBIC-Schema';
 all_from 'lib/Catalyst/Model/DBIC/Schema.pm';
 
-requires 'DBIx::Class'           => '0.08103';
+requires 'DBIx::Class'           => '0.08107';
 requires 'Catalyst::Runtime'     => '5.80005';
-requires 'MooseX::Traits'        => '0.05';
+requires 'CatalystX::Component::Traits';
 requires 'Moose';
 requires 'Moose::Autobox';
 requires 'MooseX::Types';

Deleted: trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Caching.pm
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Caching.pm	2009-06-14 02:40:06 UTC (rev 10531)
+++ trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Caching.pm	2009-06-14 02:49:36 UTC (rev 10532)
@@ -1,122 +0,0 @@
-package Catalyst::Model::DBIC::Schema::Trait::Caching;
-
-use namespace::autoclean;
-use Moose::Role;
-use Carp::Clan '^Catalyst::Model::DBIC::Schema';
-use Catalyst::Model::DBIC::Schema::Types 'CursorClass';
-use MooseX::Types::Moose qw/Int Str/;
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema::Trait::Caching - Query caching support for
-Catalyst::Model::DBIC::Schema
-
-=head1 SYNOPSIS
-
-    __PACKAGE__->config({
-        traits => ['Caching'],
-        connect_info => 
-            ['dbi:mysql:db', 'user', 'pass'],
-    });
-
-    $c->model('DB::Table')->search({ foo => 'bar' }, { cache_for => 18000 });
-
-=head1 DESCRIPTION
-
-Enable caching support using L<DBIx::Class::Cursor::Cached> and
-L<Catalyst::Plugin::Cache>.
-
-In order for this to work, L<Catalyst::Plugin::Cache> must be configured and
-loaded. A possible configuration would look like this:
-
-  <Plugin::Cache>
-    <backend>       
-      class Cache::FastMmap
-      unlink_on_exit 1
-    </backend>
-  </Plugin::Cache>
-
-Then in your queries, set the C<cache_for> ResultSet attribute to the number of
-seconds you want the query results to be cached for, eg.:
-
-  $c->model('DB::Table')->search({ foo => 'bar' }, { cache_for => 18000 });
-
-=head1 CONFIG PARAMETERS
-
-=head2 caching
-
-Turn caching on or off, you can use:
-
-    $c->model('DB')->caching(0);
-
-=cut
-
-has caching => (is => 'rw', isa => Int, default => 1);
-
-after setup => sub {
-    my $self = shift;
-
-    return if !$self->caching;
-
-    $self->caching(0);
-
-    my $cursor_class = $self->connect_info->{cursor_class}
-        || 'DBIx::Class::Cursor::Cached';
-
-    unless (eval { Class::MOP::load_class($cursor_class) }) {
-        carp "Caching disabled, cannot load cursor class"
-            . " $cursor_class: $@";
-        return;
-    }
-
-    unless ($cursor_class->can('clear_cache')) {
-        carp "Caching disabled, cursor_class $cursor_class does not"
-             . " support it.";
-        return;
-    }
-
-    $self->connect_info->{cursor_class} = $cursor_class;
-    $self->caching(1);
-};
-
-before ACCEPT_CONTEXT => sub {
-    my ($self, $c) = @_;
-
-    return $self unless 
-        $self->caching;
-
-    unless ($c->can('cache') && ref $c->cache) {
-        $c->log->warn("DBIx::Class cursor caching disabled, you don't seem to"
-            . " have a working Cache plugin.");
-        $self->caching(0);
-        $self->_reset_cursor_class;
-        return $self;
-    }
-
-    if (ref $self->schema->default_resultset_attributes) {
-        $self->schema->default_resultset_attributes->{cache_object} =
-            $c->cache;
-    } else {
-        $self->schema->default_resultset_attributes({
-            cache_object => $c->cache
-        });
-    }
-};
-
-=head1 SEE ALSO
-
-L<Catalyst::Model::DBIC::Schema>, L<DBIx::Class>, L<Catalyst::Plugin::Cache>,
-L<Cache::FastMmap>, L<DBIx::Class::Cursor::Cached>
-
-=head1 AUTHOR
-
-Rafael Kitover, C<rkitover at cpan.org>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;

Deleted: trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Replicated.pm
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Replicated.pm	2009-06-14 02:40:06 UTC (rev 10531)
+++ trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Replicated.pm	2009-06-14 02:49:36 UTC (rev 10532)
@@ -1,105 +0,0 @@
-package Catalyst::Model::DBIC::Schema::Trait::Replicated;
-
-use namespace::autoclean;
-use Moose::Role;
-use Moose::Autobox;
-use Carp::Clan '^Catalyst::Model::DBIC::Schema';
-
-use Catalyst::Model::DBIC::Schema::Types 'ConnectInfos';
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema::Trait::Replicated - Replicated storage support for
-L<Catalyst::Model::DBIC::Schema>
-
-=head1 SYNOPSiS
-
-    __PACKAGE__->config({
-        traits => ['Replicated']
-        connect_info => 
-            ['dbi:mysql:master', 'user', 'pass'],
-        replicants => [
-            ['dbi:mysql:slave1', 'user', 'pass'],
-            ['dbi:mysql:slave2', 'user', 'pass'],
-            ['dbi:mysql:slave3', 'user', 'pass'],
-        ],
-        balancer_args => {
-          master_read_weight => 0.3
-        }
-    });
-
-=head1 DESCRIPTION
-
-Sets your storage_type to L<DBIx::Class::Storage::DBI::Replicated> and connects
-replicants provided in config. See that module for supported resultset
-attributes.
-
-The default L<DBIx::Class::Storage::DBI::Replicated/balancer_type> is
-C<::Random>.
-
-Sets the
-L<DBIx::Class::Storage::DBI::Replicated::Balancer::Random/master_read_weight> to
-C<1> by default, meaning that you have the same chance of reading from master as
-you do from replicants. Set to C<0> to turn off reads from master.
-
-=head1 CONFIG PARAMETERS
-
-=head2 replicants
-
-Array of connect_info settings for every replicant.
-
-=cut
-
-has replicants => (
-    is => 'ro', isa => ConnectInfos, coerce => 1, required => 1
-);
-
-after setup => sub {
-    my $self = shift;
-
-# check storage_type compatibility (if configured)
-    if (my $storage_type = $self->storage_type) {
-        my $class = $storage_type =~ /^::/ ?
-            "DBIx::Class::Storage$storage_type"
-            : $storage_type;
-
-        croak "This storage_type cannot be used with replication"
-            unless $class->isa('DBIx::Class::Storage::DBI::Replicated');
-    } else {
-        $self->storage_type('::DBI::Replicated');
-    }
-
-    $self->connect_info->{balancer_type} ||= '::Random'
-        unless $self->connect_info->{balancer_type};
-
-    unless ($self->connect_info->{balancer_args} &&
-            exists $self->connect_info->{balancer_args}{master_read_weight}) {
-        $self->connect_info->{balancer_args}{master_read_weight} = 1;
-    }
-};
-
-sub BUILD {}
-after BUILD => sub {
-    my $self = shift;
-
-    $self->storage->connect_replicants(map [ $_ ], $self->replicants->flatten);
-};
-
-=head1 SEE ALSO
-
-L<Catalyst::Model::DBIC::Schema>, L<DBIx::Class>,
-L<DBIx::Class::Storage::DBI::Replicated>,
-L<Cache::FastMmap>, L<DBIx::Class::Cursor::Cached>
-
-=head1 AUTHOR
-
-Rafael Kitover, C<rkitover at cpan.org>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;

Modified: trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Types.pm
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Types.pm	2009-06-14 02:40:06 UTC (rev 10531)
+++ trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Types.pm	2009-06-14 02:49:36 UTC (rev 10532)
@@ -13,6 +13,8 @@
 
 use namespace::clean -except => 'meta';
 
+class_type 'DBIx::Class::Schema';
+
 subtype SchemaClass,
     as ClassName;
 

Modified: trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema.pm
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema.pm	2009-06-14 02:40:06 UTC (rev 10531)
+++ trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema.pm	2009-06-14 02:49:36 UTC (rev 10532)
@@ -2,8 +2,8 @@
 
 use Moose;
 use mro 'c3';
-with 'MooseX::Traits';
 extends 'Catalyst::Model';
+with 'CatalystX::Component::Traits';
 
 our $VERSION = '0.24';
 
@@ -308,17 +308,18 @@
 
 Array of Traits to apply to the instance. Traits are L<Moose::Role>s.
 
-They are relative to the C<< MyApp::Model::DB::Trait:: >>, then the C<<
-Catalyst::Model::DBIC::Schema::Trait:: >> namespaces, unless prefixed with C<+>
+They are relative to the C<< MyApp::TraitFor::Model::DBIC::Schema:: >>, then the C<<
+Catalyst::TraitFor::Model::DBIC::Schema:: >> namespaces, unless prefixed with C<+>
 in which case they are taken to be a fully qualified name. E.g.:
 
     traits Caching
-    traits +MyApp::DB::Trait::Foo
+    traits +MyApp::TraitFor::Model::Foo
 
 A new instance is created at application time, so any consumed required
 attributes, coercions and modifiers will work.
 
-Traits are applied at L<Catalyst::Component/COMPONENT> time using L<MooseX::Traits>.
+Traits are applied at L<Catalyst::Component/COMPONENT> time using
+L<CatalystX::Component::Traits>.
 
 C<ref $self> will be an anon class if any traits are applied, C<<
 $self->_original_class_name >> will be the original class.
@@ -330,9 +331,9 @@
 
 =over 4
 
-=item L<Catalyst::Model::DBIC::Schema::Trait::Caching>
+=item L<Catalyst::TraitFor::Model::DBIC::Schema::Caching>
 
-=item L<Catalyst::Model::DBIC::Schema::Trait::Replicated>
+=item L<Catalyst::TraitFor::Model::DBIC::Schema::Replicated>
 
 =back
 
@@ -361,16 +362,18 @@
 C<::Model::> or C<::M::> in your class name. E.g. if your class name is
 C<MyApp::Model::DB> the L</model_name> will be C<DB>.
 
-=head2 _original_class_name
-
-The class name of your model before any L</traits> are applied. E.g.
-C<MyApp::Model::DB>.
-
 =head2 _default_cursor_class
 
 What to reset your L<DBIx::Class::Storage::DBI/cursor_class> to if a custom one
 doesn't work out. Defaults to L<DBIx::Class::Storage::DBI::Cursor>.
 
+=head1 ATTRIBUTES FROM L<MooseX::Traits::Pluggable>
+
+=head2 _original_class_name
+
+The class name of your model before any L</traits> are applied. E.g.
+C<MyApp::Model::DB>.
+
 =head2 _traits
 
 Unresolved arrayref of traits passed in the config.
@@ -448,9 +451,6 @@
     lazy_build => 1,
 );
 
-has _traits => (is => 'ro', isa => ArrayRef);
-has _resolved_traits => (is => 'ro', isa => ArrayRef);
-
 has _default_cursor_class => (
     is => 'ro',
     isa => CursorClass,
@@ -458,32 +458,6 @@
     coerce => 1
 );
 
-has _original_class_name => (
-    is => 'ro',
-    required => 1,
-    isa => Str,
-    default => sub { blessed $_[0] },
-);
-
-sub COMPONENT {
-    my ($class, $app, $args) = @_;
-
-    $args = $class->merge_config_hashes($class->config, $args);
-
-    if (my $traits = delete $args->{traits}) {
-        my @traits = $class->_resolve_traits($traits->flatten);
-	return $class->new_with_traits(
-	    traits => \@traits,
-	    _original_class_name => $class,
-            _traits => $traits,
-            _resolved_traits => \@traits,
-	    %$args
-	);
-    }
-
-    return $class->new($args);
-}
-
 sub BUILD {
     my $self = shift;
     my $class = $self->_original_class_name;
@@ -591,32 +565,6 @@
     }
 }
 
-sub _resolve_traits {
-    my ($class, @names) = @_;
-    my $base  = 'Trait';
-
-    my @search_ns = grep !/^(?:Moose|Class::MOP)::/,
-        $class->meta->class_precedence_list;
-        
-    my @traits;
-
-    OUTER: for my $name (@names) {
-	if ($name =~ /^\+(.*)/) {
-	    push @traits, $1;
-	    next;
-	}
-	for my $ns (@search_ns) {
-	    my $full = "${ns}::${base}::${name}";
-	    if (eval { Class::MOP::load_class($full) }) {
-		push @traits, $full;
-		next OUTER;
-	    }
-	}
-    }
-
-    return @traits;
-}
-
 sub _build_model_name {
     my $self  = shift;
     my $class = $self->_original_class_name;
@@ -642,8 +590,8 @@
 
 Traits:
 
-L<Catalyst::Model::DBIC::Schema::Trait::Caching>,
-L<Catalyst::Model::DBIC::Schema::Trait::Replicated>
+L<Catalyst::TraitFor::Model::DBIC::Schema::Caching>,
+L<Catalyst::TraitFor::Model::DBIC::Schema::Replicated>
 
 =head1 AUTHOR
 

Copied: trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm (from rev 10358, trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Caching.pm)
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm	                        (rev 0)
+++ trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm	2009-06-14 02:49:36 UTC (rev 10532)
@@ -0,0 +1,122 @@
+package Catalyst::TraitFor::Model::DBIC::Schema::Caching;
+
+use namespace::autoclean;
+use Moose::Role;
+use Carp::Clan '^Catalyst::Model::DBIC::Schema';
+use Catalyst::Model::DBIC::Schema::Types 'CursorClass';
+use MooseX::Types::Moose qw/Int Str/;
+
+=head1 NAME
+
+Catalyst::TraitFor::Model::DBIC::Schema::Caching - Query caching support for
+Catalyst::Model::DBIC::Schema
+
+=head1 SYNOPSIS
+
+    __PACKAGE__->config({
+        traits => ['Caching'],
+        connect_info => 
+            ['dbi:mysql:db', 'user', 'pass'],
+    });
+
+    $c->model('DB::Table')->search({ foo => 'bar' }, { cache_for => 18000 });
+
+=head1 DESCRIPTION
+
+Enable caching support using L<DBIx::Class::Cursor::Cached> and
+L<Catalyst::Plugin::Cache>.
+
+In order for this to work, L<Catalyst::Plugin::Cache> must be configured and
+loaded. A possible configuration would look like this:
+
+  <Plugin::Cache>
+    <backend>       
+      class Cache::FastMmap
+      unlink_on_exit 1
+    </backend>
+  </Plugin::Cache>
+
+Then in your queries, set the C<cache_for> ResultSet attribute to the number of
+seconds you want the query results to be cached for, eg.:
+
+  $c->model('DB::Table')->search({ foo => 'bar' }, { cache_for => 18000 });
+
+=head1 CONFIG PARAMETERS
+
+=head2 caching
+
+Turn caching on or off, you can use:
+
+    $c->model('DB')->caching(0);
+
+=cut
+
+has caching => (is => 'rw', isa => Int, default => 1);
+
+after setup => sub {
+    my $self = shift;
+
+    return if !$self->caching;
+
+    $self->caching(0);
+
+    my $cursor_class = $self->connect_info->{cursor_class}
+        || 'DBIx::Class::Cursor::Cached';
+
+    unless (eval { Class::MOP::load_class($cursor_class) }) {
+        carp "Caching disabled, cannot load cursor class"
+            . " $cursor_class: $@";
+        return;
+    }
+
+    unless ($cursor_class->can('clear_cache')) {
+        carp "Caching disabled, cursor_class $cursor_class does not"
+             . " support it.";
+        return;
+    }
+
+    $self->connect_info->{cursor_class} = $cursor_class;
+    $self->caching(1);
+};
+
+before ACCEPT_CONTEXT => sub {
+    my ($self, $c) = @_;
+
+    return $self unless 
+        $self->caching;
+
+    unless ($c->can('cache') && ref $c->cache) {
+        $c->log->warn("DBIx::Class cursor caching disabled, you don't seem to"
+            . " have a working Cache plugin.");
+        $self->caching(0);
+        $self->_reset_cursor_class;
+        return $self;
+    }
+
+    if (ref $self->schema->default_resultset_attributes) {
+        $self->schema->default_resultset_attributes->{cache_object} =
+            $c->cache;
+    } else {
+        $self->schema->default_resultset_attributes({
+            cache_object => $c->cache
+        });
+    }
+};
+
+=head1 SEE ALSO
+
+L<Catalyst::Model::DBIC::Schema>, L<DBIx::Class>, L<Catalyst::Plugin::Cache>,
+L<Cache::FastMmap>, L<DBIx::Class::Cursor::Cached>
+
+=head1 AUTHOR
+
+Rafael Kitover, C<rkitover at cpan.org>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;

Copied: trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm (from rev 10358, trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/Model/DBIC/Schema/Trait/Replicated.pm)
===================================================================
--- trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm	                        (rev 0)
+++ trunk/Catalyst-Model-DBIC-Schema/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm	2009-06-14 02:49:36 UTC (rev 10532)
@@ -0,0 +1,105 @@
+package Catalyst::TraitFor::Model::DBIC::Schema::Replicated;
+
+use namespace::autoclean;
+use Moose::Role;
+use Moose::Autobox;
+use Carp::Clan '^Catalyst::Model::DBIC::Schema';
+
+use Catalyst::Model::DBIC::Schema::Types 'ConnectInfos';
+
+=head1 NAME
+
+Catalyst::TraitFor::Model::DBIC::Schema::Replicated - Replicated storage support for
+L<Catalyst::Model::DBIC::Schema>
+
+=head1 SYNOPSiS
+
+    __PACKAGE__->config({
+        traits => ['Replicated']
+        connect_info => 
+            ['dbi:mysql:master', 'user', 'pass'],
+        replicants => [
+            ['dbi:mysql:slave1', 'user', 'pass'],
+            ['dbi:mysql:slave2', 'user', 'pass'],
+            ['dbi:mysql:slave3', 'user', 'pass'],
+        ],
+        balancer_args => {
+          master_read_weight => 0.3
+        }
+    });
+
+=head1 DESCRIPTION
+
+Sets your storage_type to L<DBIx::Class::Storage::DBI::Replicated> and connects
+replicants provided in config. See that module for supported resultset
+attributes.
+
+The default L<DBIx::Class::Storage::DBI::Replicated/balancer_type> is
+C<::Random>.
+
+Sets the
+L<DBIx::Class::Storage::DBI::Replicated::Balancer::Random/master_read_weight> to
+C<1> by default, meaning that you have the same chance of reading from master as
+you do from replicants. Set to C<0> to turn off reads from master.
+
+=head1 CONFIG PARAMETERS
+
+=head2 replicants
+
+Array of connect_info settings for every replicant.
+
+=cut
+
+has replicants => (
+    is => 'ro', isa => ConnectInfos, coerce => 1, required => 1
+);
+
+after setup => sub {
+    my $self = shift;
+
+# check storage_type compatibility (if configured)
+    if (my $storage_type = $self->storage_type) {
+        my $class = $storage_type =~ /^::/ ?
+            "DBIx::Class::Storage$storage_type"
+            : $storage_type;
+
+        croak "This storage_type cannot be used with replication"
+            unless $class->isa('DBIx::Class::Storage::DBI::Replicated');
+    } else {
+        $self->storage_type('::DBI::Replicated');
+    }
+
+    $self->connect_info->{balancer_type} ||= '::Random'
+        unless $self->connect_info->{balancer_type};
+
+    unless ($self->connect_info->{balancer_args} &&
+            exists $self->connect_info->{balancer_args}{master_read_weight}) {
+        $self->connect_info->{balancer_args}{master_read_weight} = 1;
+    }
+};
+
+sub BUILD {}
+after BUILD => sub {
+    my $self = shift;
+
+    $self->storage->connect_replicants(map [ $_ ], $self->replicants->flatten);
+};
+
+=head1 SEE ALSO
+
+L<Catalyst::Model::DBIC::Schema>, L<DBIx::Class>,
+L<DBIx::Class::Storage::DBI::Replicated>,
+L<Cache::FastMmap>, L<DBIx::Class::Cursor::Cached>
+
+=head1 AUTHOR
+
+Rafael Kitover, C<rkitover at cpan.org>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;




More information about the Catalyst-commits mailing list