提交 c5ac6da5 编写于 作者: J José Valim

Merge pull request #7560 from bogdan/deprecate_callbacks_monkeypatch

AS::Callbacks: deprecate monkey patch of object callbacks
...@@ -132,7 +132,7 @@ def initialize(options, &block) ...@@ -132,7 +132,7 @@ def initialize(options, &block)
options.values_at(:cache_path, :store_options, :layout) options.values_at(:cache_path, :store_options, :layout)
end end
def filter(controller) def around(controller)
cache_layout = @cache_layout.respond_to?(:call) ? @cache_layout.call(controller) : @cache_layout cache_layout = @cache_layout.respond_to?(:call) ? @cache_layout.call(controller) : @cache_layout
path_options = if @cache_path.respond_to?(:call) path_options = if @cache_path.respond_to?(:call)
......
...@@ -193,7 +193,7 @@ class ExceptConditionProcController < ConditionalFilterController ...@@ -193,7 +193,7 @@ class ExceptConditionProcController < ConditionalFilterController
end end
class ConditionalClassFilter class ConditionalClassFilter
def self.filter(controller) controller.instance_variable_set(:"@ran_class_filter", true) end def self.before(controller) controller.instance_variable_set(:"@ran_class_filter", true) end
end end
class OnlyConditionClassController < ConditionalFilterController class OnlyConditionClassController < ConditionalFilterController
...@@ -309,7 +309,7 @@ class ImplicitProcController < PrependingController ...@@ -309,7 +309,7 @@ class ImplicitProcController < PrependingController
end end
class AuditFilter class AuditFilter
def self.filter(controller) def self.before(controller)
controller.instance_variable_set(:"@was_audited", true) controller.instance_variable_set(:"@was_audited", true)
end end
end end
...@@ -449,7 +449,7 @@ def show ...@@ -449,7 +449,7 @@ def show
class ErrorToRescue < Exception; end class ErrorToRescue < Exception; end
class RescuingAroundFilterWithBlock class RescuingAroundFilterWithBlock
def filter(controller) def around(controller)
begin begin
yield yield
rescue ErrorToRescue => ex rescue ErrorToRescue => ex
...@@ -894,7 +894,7 @@ def without_exception ...@@ -894,7 +894,7 @@ def without_exception
class ControllerWithFilterClass < PostsController class ControllerWithFilterClass < PostsController
class YieldingFilter < DefaultFilter class YieldingFilter < DefaultFilter
def self.filter(controller) def self.around(controller)
yield yield
raise After raise After
end end
...@@ -905,7 +905,7 @@ def self.filter(controller) ...@@ -905,7 +905,7 @@ def self.filter(controller)
class ControllerWithFilterInstance < PostsController class ControllerWithFilterInstance < PostsController
class YieldingFilter < DefaultFilter class YieldingFilter < DefaultFilter
def filter(controller) def around(controller)
yield yield
raise After raise After
end end
...@@ -916,13 +916,13 @@ def filter(controller) ...@@ -916,13 +916,13 @@ def filter(controller)
class ControllerWithFilterMethod < PostsController class ControllerWithFilterMethod < PostsController
class YieldingFilter < DefaultFilter class YieldingFilter < DefaultFilter
def filter(controller) def around(controller)
yield yield
raise After raise After
end end
end end
around_filter YieldingFilter.new.method(:filter), :only => :raises_after around_filter YieldingFilter.new.method(:around), :only => :raises_after
end end
class ControllerWithProcFilter < PostsController class ControllerWithProcFilter < PostsController
......
...@@ -279,6 +279,7 @@ def #{method_name}(&blk) ...@@ -279,6 +279,7 @@ def #{method_name}(&blk)
def _normalize_legacy_filter(kind, filter) def _normalize_legacy_filter(kind, filter)
if !filter.respond_to?(kind) && filter.respond_to?(:filter) if !filter.respond_to?(kind) && filter.respond_to?(:filter)
ActiveSupport::Deprecation.warn("Filter object with #filter method is deprecated. Define method corresponding to filter type (#before, #after or #around).")
filter.singleton_class.class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1 filter.singleton_class.class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
def #{kind}(context, &block) filter(context, &block) end def #{kind}(context, &block) filter(context, &block) end
RUBY_EVAL RUBY_EVAL
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册