From 7644a99d90a0521165ebde1ccd201603bf7f126a Mon Sep 17 00:00:00 2001
From: Abdelkader Boudih <terminale@gmail.com>
Date: Thu, 8 Jan 2015 20:51:51 +0000
Subject: Deprecate all *_filter callbacks in favor of *_action callbacks

---
 actionpack/CHANGELOG.md                         |  6 ++++-
 actionpack/lib/abstract_controller/callbacks.rb | 32 +++++++++++++++++++++----
 actionpack/test/abstract/callbacks_test.rb      |  8 ++++---
 3 files changed, 37 insertions(+), 9 deletions(-)

(limited to 'actionpack')

diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index ce0a644520..610330ce11 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,4 +1,8 @@
-*   Allow you to pass `prepend: false` to protect_from_forgery to have the 
+*   Deprecate all *_filter callbacks in favor of *_action callbacks.
+
+    *Rafael Mendonça França*
+
+*   Allow you to pass `prepend: false` to protect_from_forgery to have the
     verification callback appended instead of prepended to the chain.
     This allows you to let the verification step depend on prior callbacks.
     Example:
diff --git a/actionpack/lib/abstract_controller/callbacks.rb b/actionpack/lib/abstract_controller/callbacks.rb
index 8571383739..db999c2765 100644
--- a/actionpack/lib/abstract_controller/callbacks.rb
+++ b/actionpack/lib/abstract_controller/callbacks.rb
@@ -1,3 +1,5 @@
+require 'active_support/deprecation'
+
 module AbstractController
   module Callbacks
     extend ActiveSupport::Concern
@@ -65,7 +67,11 @@ module AbstractController
         skip_after_action(*names)
         skip_around_action(*names)
       end
-      alias_method :skip_filter, :skip_action_callback
+
+      def skip_filter(*names)
+        ActiveSupport::Deprecation.warn("#{callback}_filter is deprecated and will removed in Rails 5.1. Use #{callback}_action instead.")
+        skip_action_callback(*names)
+      end
 
       # Take callback names and an optional callback proc, normalize them,
       # then call the block with each callback. This allows us to abstract
@@ -180,14 +186,22 @@ module AbstractController
             set_callback(:process_action, callback, name, options)
           end
         end
-        alias_method :"#{callback}_filter", :"#{callback}_action"
+
+        define_method "#{callback}_filter" do |*names, &blk|
+          ActiveSupport::Deprecation.warn("#{callback}_filter is deprecated and will removed in Rails 5.1. Use #{callback}_action instead.")
+          send("#{callback}_action", *names, &blk)
+        end
 
         define_method "prepend_#{callback}_action" do |*names, &blk|
           _insert_callbacks(names, blk) do |name, options|
             set_callback(:process_action, callback, name, options.merge(:prepend => true))
           end
         end
-        alias_method :"prepend_#{callback}_filter", :"prepend_#{callback}_action"
+
+        define_method "prepend_#{callback}_filter" do |*names, &blk|
+          ActiveSupport::Deprecation.warn("prepend_#{callback}_filter is deprecated and will removed in Rails 5.1. Use prepend_#{callback}_action instead.")
+          send("prepend_#{callback}_action", *names, &blk)
+        end
 
         # Skip a before, after or around callback. See _insert_callbacks
         # for details on the allowed parameters.
@@ -196,11 +210,19 @@ module AbstractController
             skip_callback(:process_action, callback, name, options)
           end
         end
-        alias_method :"skip_#{callback}_filter", :"skip_#{callback}_action"
+
+        define_method "skip_#{callback}_filter" do |*names, &blk|
+          ActiveSupport::Deprecation.warn("skip_#{callback}_filter is deprecated and will removed in Rails 5.1. Use skip_#{callback}_action instead.")
+          send("skip_#{callback}_action", *names, &blk)
+        end
 
         # *_action is the same as append_*_action
         alias_method :"append_#{callback}_action", :"#{callback}_action"
-        alias_method :"append_#{callback}_filter", :"#{callback}_action"
+
+        define_method "append_#{callback}_filter" do |*names, &blk|
+          ActiveSupport::Deprecation.warn("append_#{callback}_filter is deprecated and will removed in Rails 5.1. Use append_#{callback}_action instead.")
+          send("append_#{callback}_action", *names, &blk)
+        end
       end
     end
   end
diff --git a/actionpack/test/abstract/callbacks_test.rb b/actionpack/test/abstract/callbacks_test.rb
index 8cba049485..07571602e4 100644
--- a/actionpack/test/abstract/callbacks_test.rb
+++ b/actionpack/test/abstract/callbacks_test.rb
@@ -267,9 +267,11 @@ module AbstractController
     end
 
     class AliasedCallbacks < ControllerWithCallbacks
-      before_filter :first
-      after_filter :second
-      around_filter :aroundz
+      ActiveSupport::Deprecation.silence do
+        before_filter :first
+        after_filter :second
+        around_filter :aroundz
+      end
 
       def first
         @text = "Hello world"
-- 
cgit v1.2.3