Make everything which used to inherit CAF use the MX::Emulate::CAF role + test
Tomas Doran [Thu, 4 Dec 2008 21:28:55 +0000 (21:28 +0000)]
Changes
lib/Catalyst/ActionContainer.pm
lib/Catalyst/DispatchType.pm
lib/Catalyst/Dispatcher.pm
lib/Catalyst/Engine/HTTP/Restarter/Watcher.pm
lib/Catalyst/Log.pm
lib/Catalyst/Request/Upload.pm
lib/Catalyst/Response.pm
t/caf_backcompat.t
t/custom_request.t [deleted file]

diff --git a/Changes b/Changes
index a28d9f8..99da146 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,11 +1,12 @@
 # This file documents the revision history for Perl extension Catalyst.
 
 5.8000_04
-        - Add MooseX::Emulate::Class::Accessor::Fast to Catalyst::Action,
-          needed by Catalyst::Controller::HTML::FormFu (zamolxes)
-          - Test for this (zamolxes)
-        - Add MooseX::Emulate::Class::Accessor::Fast to Catalyst::Request,
-          needed by Catalyst::Request::REST (t0m)
+        - Compose the MooseX::Emulate::Class::Accessor::Fast role to 
+          Catalyst::Action, Catalyst::Request, and all other modules which 
+          inherit from Class::Accessor::Fast in 5.70.
+          This fixes:
+            - Catalyst::Controller::HTML::FormFu (zamolxes)
+            - Catalyst::Request::REST (t0m)
           - Test for this (t0m)
         - Make hostname resolution lazy (Marc Mims)
         - Support mocking virtualhosts in test suite (Jason Gottshall)
@@ -17,8 +18,8 @@
         - Fix list address in documentation (zarquon)
         - Fix ACCEPT_CONTEXT on MyApp, called as a class method (marcus)
            - Test for this (marcus)
-        - Bump MX::Emulate::CAF version requirement to get more back
-          compatibility (t0m)
+        - Bump MooseX::Emulate::Class::Accessor::Fast version requirement to 
+          get more back compatibility (t0m)
         - Improve documentation for $req->captures (caelum)
         - Fix a bug in Catalyst::Stats, stopping garbage being inserted into
           the stats if a user calls begin => but no end => (jhannah)
index 5be7292..2e711d4 100644 (file)
@@ -16,6 +16,7 @@ to represent the various dispatch points in your application.
 =cut
 
 use Moose;
+with 'MooseX::Emulate::Class::Accessor::Fast';
 
 has part => (is => 'rw', required => 1);
 has actions => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
index 28ddbc5..6ac653d 100644 (file)
@@ -1,6 +1,7 @@
 package Catalyst::DispatchType;
 
-use Moose; # using it to add Moose::Object to @ISA ...
+use Moose;
+with 'MooseX::Emulate::Class::Accessor::Fast';
 no Moose;
 
 =head1 NAME
index 2f5430e..995cca5 100644 (file)
@@ -2,6 +2,7 @@ package Catalyst::Dispatcher;
 
 use Moose;
 use Class::MOP;
+with 'MooseX::Emulate::Class::Accessor::Fast';
 
 use Catalyst::Exception;
 use Catalyst::Utils;
index 9ab30b8..18ce316 100644 (file)
@@ -1,6 +1,8 @@
 package Catalyst::Engine::HTTP::Restarter::Watcher;
 
 use Moose;
+with 'MooseX::Emulate::Class::Accessor::Fast';
+
 use File::Find;
 use File::Modified;
 use File::Spec;
index 7a69d03..fad0f0e 100644 (file)
@@ -1,6 +1,8 @@
 package Catalyst::Log;
 
 use Moose;
+with 'MooseX::Emulate::Class::Accessor::Fast';
+
 use Data::Dump;
 
 our %LEVELS = ();
index dfb169b..384d33a 100644 (file)
@@ -1,6 +1,7 @@
 package Catalyst::Request::Upload;
 
 use Moose;
+with 'MooseX::Emulate::Class::Accessor::Fast';
 
 use Catalyst::Exception;
 use File::Copy ();
index 8c5cc50..d417512 100644 (file)
@@ -3,6 +3,8 @@ package Catalyst::Response;
 use Moose;
 use HTTP::Headers;
 
+with 'MooseX::Emulate::Class::Accessor::Fast';
+
 has cookies   => (is => 'rw', default => sub { {} });
 has body      => (is => 'rw', default => '');
 has location  => (is => 'rw');
index 975eda2..d8c67c2 100644 (file)
@@ -1,9 +1,29 @@
 use strict;
 use warnings;
-use Test::More tests => 1;
+use Test::More;
 use Test::Exception;
-use Catalyst::Action;
+use Class::MOP ();
+use Moose::Util ();
 
-my $action=Catalyst::Action->new({foo=>'bar'});
+# List of everything which used Class::Accessor::Fast in 5.70.
+my @modules = qw/
+    Catalyst::Action
+    Catalyst::ActionContainer
+    Catalyst::Component
+    Catalyst::Dispatcher
+    Catalyst::DispatchType
+    Catalyst::Engine::HTTP::Restarter::Watcher
+    Catalyst::Engine
+    Catalyst::Log
+    Catalyst::Request::Upload
+    Catalyst::Request
+    Catalyst::Response
+/;
 
-is $action->{foo}, 'bar', 'custom Action attribute';
+plan tests => scalar @modules;
+
+foreach my $module (@modules) {
+    Class::MOP::load_class($module);
+    ok Moose::Util::does_role($module => 'MooseX::Emulate::Class::Accessor::Fast'),
+        "$module has Class::Accessor::Fast back-compat";
+}
diff --git a/t/custom_request.t b/t/custom_request.t
deleted file mode 100644 (file)
index e7a80ce..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-use strict;
-use warnings;
-use Test::More tests => 1;
-use Test::Exception;
-
-lives_ok {
-    package TestApp::TestCustomRequest;
-    use strict;
-    use warnings;
-    use base qw/Catalyst::Request/;
-
-    # Catalyst::Request::REST uses this, so test it in core..
-    __PACKAGE__->mk_accessors(qw( custom_accessor ));
-} 'Can make a custom request class';
-
-