aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
diff options
context:
space:
mode:
authorgroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2007-10-03 21:04:04 +0000
committergroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2007-10-03 21:04:04 +0000
commitde48f4e69aef2efba652b10994a920d6a61e856d (patch)
tree97be169c03c1905ab439a7d960814161cf040241 /lib/Reaction/InterfaceModel/Reflector/DBIC.pm
parente716714fb1197850975fcd131149db2f53b07f64 (diff)
downloadreaction-de48f4e69aef2efba652b10994a920d6a61e856d.tar.gz
reaction-de48f4e69aef2efba652b10994a920d6a61e856d.zip
optimizations are fun! widget cache, reflector and immutable, other details. bye old view
Diffstat (limited to 'lib/Reaction/InterfaceModel/Reflector/DBIC.pm')
-rw-r--r--lib/Reaction/InterfaceModel/Reflector/DBIC.pm10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Reaction/InterfaceModel/Reflector/DBIC.pm b/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
index 70b65b7..4d83357 100644
--- a/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
+++ b/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
@@ -14,6 +14,8 @@ use Catalyst::Utils;
class DBIC, which {
+ has make_classes_immutable => (isa => "Bool", is => "rw", required => 1, default => sub{ 1 });
+
#user defined actions and prototypes
has object_actions => (isa => "HashRef", is => "rw", lazy_build => 1);
has collection_actions => (isa => "HashRef", is => "rw", lazy_build => 1);
@@ -178,7 +180,7 @@ class DBIC, which {
my $sources = $self->parse_reflect_rules($rules, $haystack);
- my $make_immutable = $meta->is_immutable;
+ my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;
$meta->make_mutable if $meta->is_immutable;
$meta->add_domain_model
@@ -372,7 +374,7 @@ class DBIC, which {
my $meta = eval { Class::MOP::load_class($class) } ?
$class->meta : $base->meta->create( $class, superclasses => [ $base ]);
- my $make_immutable = $meta->is_immutable;
+ my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;;
$meta->make_mutable if $meta->is_immutable;
$meta->add_method(_build_im_class => sub{ $object } );
#XXX as a default pass the domain model as a target_model until i come up with something
@@ -467,7 +469,7 @@ class DBIC, which {
$dm_opts->{is} ||= 'rw';
$dm_opts->{required} ||= 1;
- my $make_immutable = $meta->is_immutable;
+ my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;;
$meta->make_mutable if $meta->is_immutable;
my $dm_attr = $meta->add_domain_model($dm_name, %$dm_opts);
@@ -753,7 +755,7 @@ class DBIC, which {
#create the class
my $meta = eval { Class::MOP::load_class($class) } ?
$class->meta : $base->meta->create($class, superclasses => [$base]);
- my $make_immutable = $meta->is_immutable;
+ my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;
$meta->make_mutable if $meta->is_immutable;
for my $attr_name (keys %$attributes){