From: Tomas Doran Date: Sun, 4 Jan 2009 00:03:16 +0000 (+0000) Subject: Chop that chunk of sh*t out again, as we're going to hit anything which relies on... X-Git-Tag: 5.8000_05~49 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=54bee50ff7b3e30e2c370eb6249e021229cb9c6b Chop that chunk of sh*t out again, as we're going to hit anything which relies on it until it's fixed. --- diff --git a/Changes b/Changes index cef7eba..594ac2d 100644 --- a/Changes +++ b/Changes @@ -1,7 +1,5 @@ # This file documents the revision history for Perl extension Catalyst. - - Fix plugins which hook onto setup_finished being called (t0m) - - Test for this (t0m) - Fix calling use Catalyst::Test 'MyApp' 'foo' which used to work, but stopped as the 2nd parameter can be an options hash now (t0m) - Bump Moose dependency to fix make_immutable bug (t0m) @@ -40,10 +38,6 @@ method is called, fixing issues with plugins which have their own new methods by inlining a constructor on MyApp (t0m) - Test for this and method modifiers in MyApp (t0m) - - Fix Catalyst::Plugin::Authentication's authentication - plugin backwards compatibility issues by fixing - Class::Data::Inheritable compatibility (t0m) - - Test for this (t0m) - Fix bug causing Catalyst::Request::Upload's basename method to return undef (t0m) - Test for this (Carl Franks) diff --git a/TODO b/TODO index 44f794d..01c3873 100644 --- a/TODO +++ b/TODO @@ -31,16 +31,17 @@ Back-compat investigation / known issues: - Catalyst-Plugin-Cache dies due to mk_accessors('meta') - - CatalystX-CRUD fails tests against 5.80 (karpet) + - CatalystX-CRUD and CatalystX-CRUD-ModelAdapter-DBIC + fail tests against 5.80 (karpet) - Catalyst-Plugin-Authorization-ACL fails as Catalyst::Dispatcher::_do_forward does not fix arguments if you throw an exception. Needs a test case (Caelum) - - Catalyst::Plugin::Authentication::Store::DBIC relies on - hooking the setup_finished class data method in a plugin - (see t/cdi_backcompat_accessor_override.t). - Is this insane / should we support this? + - Catalyst::Plugin::Authentication new release. + + - Deprecation/Upgrade notice in Catalyst Makefile.PL for known broken + versions of plugins. - Issues with TWMC not being loaded when it used to be in 5.70 (Bill Moseley) diff --git a/lib/Catalyst/ClassData.pm b/lib/Catalyst/ClassData.pm index 87b68c9..6174ffd 100644 --- a/lib/Catalyst/ClassData.pm +++ b/lib/Catalyst/ClassData.pm @@ -16,18 +16,6 @@ sub mk_classdata { my $meta = $pkg->Class::MOP::Object::meta(); if (@_ > 1) { $meta->namespace->{$attribute} = \$_[1]; - no strict 'refs'; - if (! *{"${pkg}::${attribute}"}{CODE} ) { - foreach my $super ( $meta->linearized_isa ) { - # If there is a code symbol for this class data in a parent class, but not in our - # class then copy it into our package. This is evil. - my $parent_symbol = *{"${super}::${attribute}"}{CODE} ? \&{"${super}::${attribute}"} : undef; - if (defined $parent_symbol) { - *{"${pkg}::${attribute}"} = $parent_symbol; - last; - } - } - } return $_[1]; } diff --git a/t/cdi_backcompat_plugin_accessor_override.t b/t/cdi_backcompat_plugin_accessor_override.t index bb6bddf..d3efa18 100644 --- a/t/cdi_backcompat_plugin_accessor_override.t +++ b/t/cdi_backcompat_plugin_accessor_override.t @@ -24,13 +24,16 @@ $SIG{__DIE__} = \&Carp::confess; __PACKAGE__->config; } -lives_ok { - CDICompatTestApp->setup; -} 'Setup app with plugins which says use base qw/Class::Accessor::Fast/'; +SKIP: { + skip 'Not trying to replicate the nasty CDI hackness', 2; + lives_ok { + CDICompatTestApp->setup; + } 'Setup app with plugins which says use base qw/Class::Accessor::Fast/'; -# And the plugin's setup_finished method should have been run, as accessors -# are not created in MyApp until the data is written to. -{ - no warnings 'once'; - is $CDICompatTestPlugin::Data::HAS_RUN_SETUP_FINISHED, 1, 'Plugin setup_finish run'; -} + # And the plugin's setup_finished method should have been run, as accessors + # are not created in MyApp until the data is written to. + { + no warnings 'once'; + is $CDICompatTestPlugin::Data::HAS_RUN_SETUP_FINISHED, 1, 'Plugin setup_finish run'; + } +} \ No newline at end of file