Skip to content

Commit

Permalink
Remove deprecated methods related to controller filters
Browse files Browse the repository at this point in the history
`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 Oct 10, 2016
1 parent 02989ee commit d7be30e
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 116 deletions.
7 changes: 7 additions & 0 deletions actionpack/CHANGELOG.md
@@ -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.

Expand Down
39 changes: 0 additions & 39 deletions actionpack/lib/abstract_controller/callbacks.rb
Expand Up @@ -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.
Expand Down Expand Up @@ -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|
Expand All @@ -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
Expand Down
48 changes: 0 additions & 48 deletions actionpack/test/abstract/callbacks_test.rb
Expand Up @@ -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
30 changes: 1 addition & 29 deletions actionpack/test/controller/filters_test.rb
Expand Up @@ -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)
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit d7be30e

Please sign in to comment.