Unfuck Catalyst::Plugin::Log::Dispatch
Tomas Doran [Mon, 20 Apr 2009 22:28:46 +0000 (22:28 +0000)]
Changes
lib/Catalyst/Log.pm

diff --git a/Changes b/Changes
index fd8b2eb..8581c86 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 # This file documents the revision history for Perl extension Catalyst.
 
+        - Add backwards compatibility method for Catalyst::Log->body, which
+          has been made private (t0m)
         - Fix so that calling $c->req->parameters(undef) does not flatten
           the request parameters with undef + test (t0m)
         - Fix so that width of table of unattached actions for debugging
index a131821..a28c373 100644 (file)
@@ -101,6 +101,21 @@ sub _send_to_log {
     print STDERR @_;
 }
 
+# 5.7 compat code.
+# Alias _body to body, add a before modifier to warn..
+my $meta = __PACKAGE__->meta; # Calling meta method here fine as we happen at compile time.
+$meta->add_method('body', $meta->get_method('_body'));
+my %package_hash; # Only warn once per method, per package. 
+                  # I haven't provided a way to disable them, patches welcome.
+$meta->add_before_method_modifier('body', sub {
+    my $class = blessed(shift);
+    $package_hash{$class}++ || do {
+        warn("Class $class is calling the deprecated method Catalyst::Log->body method,\n"
+            . "this will be removed in Catalyst 5.81");
+    };
+});
+# End 5.70 backwards compatibility hacks.
+
 no Moose;
 __PACKAGE__->meta->make_immutable(inline_constructor => 0);