From: Florian Ragwitz Date: Sun, 29 Mar 2009 18:58:04 +0000 (+0000) Subject: Adopt Catalyst::ClassData to latest Class::MOP::Class changes. X-Git-Tag: 5.80001~47 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=46435d36b97afe22955a7f7188ec5cefbb8886f0;hp=30305469e1d8f922119d64d631ccd800358a7698 Adopt Catalyst::ClassData to latest Class::MOP::Class changes. Also depend on the latest Class::MOP. --- diff --git a/Makefile.PL b/Makefile.PL index 97d9b8e..a7ae76f 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -11,7 +11,7 @@ requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00800'; requires 'Moose' => '0.70'; requires 'Carp'; requires 'Class::C3::Adopt::NEXT' => '0.07'; -requires 'Class::MOP'; +requires 'Class::MOP' => '0.79'; requires 'CGI::Simple::Cookie'; requires 'Data::Dump'; requires 'File::Modified'; diff --git a/lib/Catalyst/ClassData.pm b/lib/Catalyst/ClassData.pm index 0f0b27d..553a851 100644 --- a/lib/Catalyst/ClassData.pm +++ b/lib/Catalyst/ClassData.pm @@ -46,17 +46,16 @@ sub mk_classdata { my $meta = $class->Class::MOP::Object::meta(); confess "${class}'s metaclass is not a Class::MOP::Class" unless $meta->isa('Class::MOP::Class'); - my $immutable_options; - if( $meta->is_immutable ){ - $immutable_options = $meta->get_immutable_options; - $meta->make_mutable; - } + + my $was_immutable = $meta->is_immutable; + $meta->make_mutable if $was_immutable; + my $alias = "_${attribute}_accessor"; $meta->add_method($alias, $accessor); $meta->add_method($attribute, $accessor); - if(defined $immutable_options){ - $meta->make_immutable(%{ $immutable_options }); - } + + $meta->make_immutable if $was_immutable; + $class->$attribute($_[2]) if(@_ > 2); return $accessor; }