DBIC::Schema - remove MX::ClassAttribute
Rafael Kitover [Fri, 22 May 2009 05:13:12 +0000 (05:13 +0000)]
Makefile.PL
lib/Catalyst/Model/DBIC/Schema.pm

index 6a78820..0e9596e 100644 (file)
@@ -7,7 +7,6 @@ requires 'DBIx::Class'           => '0.08102';
 requires 'Catalyst::Runtime'     => '5.80003';
 requires 'Moose';
 requires 'Moose::Autobox';
-requires 'MooseX::ClassAttribute';
 requires 'MooseX::Types';
 requires 'MooseX::Object::Pluggable' => '0.0011';
 requires 'namespace::clean';
index 3a2d431..3d709b9 100644 (file)
@@ -381,8 +381,6 @@ Used often for debugging and controlling transactions.
 
 =cut
 
-class_has 'composed_schema' => (is => 'rw', isa => 'DBIx::Class::Schema');
-
 has 'schema' => (is => 'rw', isa => 'DBIx::Class::Schema');
 
 has 'schema_class' => (
@@ -517,6 +515,20 @@ sub _reset_cursor_class {
     }
 }
 
+{
+    my %COMPOSED_CACHE;
+
+    sub composed_schema {
+       my $self = shift;
+       my $class = $self->_original_class_name;
+       my $store = \$COMPOSED_CACHE{$class}{$self->schema_class};
+
+       $$store = shift if @_;
+
+       return $$store
+    }
+}
+
 __PACKAGE__->meta->make_immutable;
 
 =head1 SEE ALSO