提交 7de994fa 编写于 作者: Ł Łukasz Strzałkowski

Port all remaining self.protected_instance_variables to class methods

上级 55c9109b
......@@ -373,8 +373,6 @@ class Base < AbstractController::Base
include AbstractController::AssetPaths
include AbstractController::Callbacks
self.protected_instance_variables = [:@_action_has_layout]
helper ActionMailer::MailHelper
private_class_method :new #:nodoc:
......@@ -387,6 +385,10 @@ class Base < AbstractController::Base
parts_order: [ "text/plain", "text/enriched", "text/html" ]
}.freeze
def self.default_protected_instance_vars
super.concat [:@_action_has_layout]
end
class << self
# Register one or more Observers which will be notified when mail is delivered.
def register_observers(*observers)
......
......@@ -114,6 +114,11 @@ def method_added(name)
end
end
# Define some internal variables that should not be propagated to the view.
def self.default_protected_instance_vars
[]
end
abstract!
# Calls the action going through the entire action dispatch stack.
......
......@@ -13,13 +13,8 @@ def initialize(message = nil)
module Rendering
extend ActiveSupport::Concern
included do
class_attribute :protected_instance_variables
self.protected_instance_variables = []
end
def default_protected_instance_vars
[:@_action_name, :@_response_body, :@_formats, :@_prefixes, :@_config]
def self.default_protected_instance_vars
super.concat [:@_action_name, :@_response_body, :@_formats, :@_prefixes, :@_config]
end
# Raw rendering of a template to a string.
......@@ -57,10 +52,9 @@ def rendered_format
# :api: public
def view_assigns
hash = {}
variables = instance_variables
variables -= protected_instance_variables
variables -= default_protected_instance_vars
variables.each { |name| hash[name[1..-1]] = instance_variable_get(name) }
(instance_variables - self.class.default_protected_instance_vars).each do |name|
hash[name[1..-1]] = instance_variable_get(name)
end
hash
end
......
......@@ -261,11 +261,12 @@ def self.without_modules(*modules)
include mod
end
# Define some internal variables that should not be propagated to the view.
self.protected_instance_variables = [
:@_status, :@_headers, :@_params, :@_env, :@_response, :@_request,
:@_view_runtime, :@_stream, :@_url_options, :@_action_has_layout
]
def self.default_protected_instance_vars
super.concat [
:@_status, :@_headers, :@_params, :@_env, :@_response, :@_request,
:@_view_runtime, :@_stream, :@_url_options, :@_action_has_layout
]
end
ActiveSupport.run_load_hooks(:action_controller, self)
end
......
......@@ -17,7 +17,7 @@ def before_filters
def assigns(key = nil)
assigns = {}
instance_variables.each do |ivar|
next if ActionController::Base.protected_instance_variables.include?(ivar)
next if ActionController::Base.default_protected_instance_vars.include?(ivar)
assigns[ivar[1..-1]] = instance_variable_get(ivar)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册