Permalink
Browse files

Remove deprecated methods related to controller filters

`skip_action_callback`, `skip_filter`, `before_filter`,
`prepend_before_filter`, `skip_before_filter`,
`append_before_filter`, `around_filter`
`prepend_around_filter`, `skip_around_filter`,
`append_around_filter`, `after_filter`,
`prepend_after_filter`, `skip_after_filter` and
`append_after_filter`.
  • Loading branch information...
rafaelfranca committed May 10, 2016
1 parent 02989ee commit d7be30e8babf5e37a891522869e7b0191b79b757
View
@@ -1,3 +1,10 @@
* Remove deprecated methods `skip_action_callback`, `skip_filter`, `before_filter`,
`prepend_before_filter`, `skip_before_filter`, `append_before_filter`, `around_filter`
`prepend_around_filter`, `skip_around_filter`, `append_around_filter`, `after_filter`,
`prepend_after_filter`, `skip_after_filter` and `append_after_filter`.
*Rafael Mendonça França*
* Show an "unmatched constraints" error when params fail to match constraints
on a matched route, rather than a "missing keys" error.
@@ -54,25 +54,6 @@ def _normalize_callback_option(options, from, to) # :nodoc:
end
end
# Skip before, after, and around action callbacks matching any of the names.
#
# ==== Parameters
# * <tt>names</tt> - A list of valid names that could be used for
# callbacks. Note that skipping uses Ruby equality, so it's
# impossible to skip a callback defined using an anonymous proc
# using #skip_action_callback.
def skip_action_callback(*names)
ActiveSupport::Deprecation.warn("`skip_action_callback` is deprecated and will be removed in Rails 5.1. Please use skip_before_action, skip_after_action or skip_around_action instead.")
skip_before_action(*names, raise: false)
skip_after_action(*names, raise: false)
skip_around_action(*names, raise: false)
end
def skip_filter(*names)
ActiveSupport::Deprecation.warn("`skip_filter` is deprecated and will be removed in Rails 5.1. Use skip_before_action, skip_after_action or skip_around_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
# the normalization across several methods that use it.
@@ -187,22 +168,12 @@ def _insert_callbacks(callbacks, block = nil)
end
end
define_method "#{callback}_filter" do |*names, &blk|
ActiveSupport::Deprecation.warn("#{callback}_filter is deprecated and will be 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
define_method "prepend_#{callback}_filter" do |*names, &blk|
ActiveSupport::Deprecation.warn("prepend_#{callback}_filter is deprecated and will be 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.
define_method "skip_#{callback}_action" do |*names|
@@ -211,18 +182,8 @@ def _insert_callbacks(callbacks, block = nil)
end
end
define_method "skip_#{callback}_filter" do |*names, &blk|
ActiveSupport::Deprecation.warn("skip_#{callback}_filter is deprecated and will be 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"
define_method "append_#{callback}_filter" do |*names, &blk|
ActiveSupport::Deprecation.warn("append_#{callback}_filter is deprecated and will be removed in Rails 5.1. Use append_#{callback}_action instead.")
send("append_#{callback}_action", *names, &blk)
end
end
end
end
@@ -264,53 +264,5 @@ class TestCallbacksWithArgs < ActiveSupport::TestCase
assert_equal "Hello world Howdy!", controller.response_body
end
end
class AliasedCallbacks < ControllerWithCallbacks
ActiveSupport::Deprecation.silence do
before_filter :first
after_filter :second
around_filter :aroundz
end
def first
@text = "Hello world"
end
def second
@second = "Goodbye"
end
def aroundz
@aroundz = "FIRST"
yield
@aroundz << "SECOND"
end
def index
@text ||= nil
self.response_body = @text.to_s
end
end
class TestAliasedCallbacks < ActiveSupport::TestCase
def setup
@controller = AliasedCallbacks.new
end
test "before_filter works" do
@controller.process(:index)
assert_equal "Hello world", @controller.response_body
end
test "after_filter works" do
@controller.process(:index)
assert_equal "Goodbye", @controller.instance_variable_get("@second")
end
test "around_filter works" do
@controller.process(:index)
assert_equal "FIRSTSECOND", @controller.instance_variable_get("@aroundz")
end
end
end
end
@@ -2,7 +2,7 @@
class ActionController::Base
class << self
%w(append_around_action prepend_after_action prepend_around_action prepend_before_action skip_after_action skip_before_action skip_action_callback).each do |pending|
%w(append_around_action prepend_after_action prepend_around_action prepend_before_action skip_after_action skip_before_action).each do |pending|
define_method(pending) do |*args|
$stderr.puts "#{pending} unimplemented: #{args.inspect}"
end unless method_defined?(pending)
@@ -956,13 +956,6 @@ class ControllerWithTwoLessFilters < ControllerWithAllTypesOfFilters
skip_after_action :after
end
class SkipFilterUsingSkipActionCallback < ControllerWithAllTypesOfFilters
ActiveSupport::Deprecation.silence do
skip_action_callback :around_again
skip_action_callback :after
end
end
class YieldingAroundFiltersTest < ActionController::TestCase
include PostsController::AroundExceptions
@@ -1047,27 +1040,6 @@ def test_last_action_in_multiple_before_action_chain_halts
assert_equal 3, controller.instance_variable_get(:@try)
end
def test_skipping_with_skip_action_callback
test_process(SkipFilterUsingSkipActionCallback,"no_raise")
assert_equal "before around (before yield) around (after yield)", @controller.instance_variable_get(:@ran_filter).join(" ")
end
def test_deprecated_skip_action_callback
assert_deprecated do
Class.new(PostsController) do
skip_action_callback :clean_up
end
end
end
def test_deprecated_skip_filter
assert_deprecated do
Class.new(PostsController) do
skip_filter :clean_up
end
end
end
protected
def test_process(controller, action = "show")
@controller = controller.is_a?(Class) ? controller.new : controller

0 comments on commit d7be30e

Please sign in to comment.