mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
get rid of using instance_variable_names method from AS
- instance_variables return symbols in 1.9 - there is instance_variable_defined? method
This commit is contained in:
parent
ba168e8f06
commit
7d862359d0
6 changed files with 14 additions and 15 deletions
|
@ -332,7 +332,7 @@ module ActionMailer #:nodoc:
|
||||||
include AbstractController::Translation
|
include AbstractController::Translation
|
||||||
include AbstractController::AssetPaths
|
include AbstractController::AssetPaths
|
||||||
|
|
||||||
self.protected_instance_variables = %w(@_action_has_layout)
|
self.protected_instance_variables = [:@_action_has_layout]
|
||||||
|
|
||||||
helper ActionMailer::MailHelper
|
helper ActionMailer::MailHelper
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
require "abstract_controller/base"
|
require "abstract_controller/base"
|
||||||
require "action_view"
|
require "action_view"
|
||||||
require "active_support/core_ext/object/instance_variables"
|
|
||||||
|
|
||||||
module AbstractController
|
module AbstractController
|
||||||
class DoubleRenderError < Error
|
class DoubleRenderError < Error
|
||||||
|
@ -109,17 +108,17 @@ module AbstractController
|
||||||
view_renderer.render(view_context, options)
|
view_renderer.render(view_context, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
DEFAULT_PROTECTED_INSTANCE_VARIABLES = %w(
|
DEFAULT_PROTECTED_INSTANCE_VARIABLES = [
|
||||||
@_action_name @_response_body @_formats @_prefixes @_config
|
:@_action_name, :@_response_body, :@_formats, :@_prefixes, :@_config,
|
||||||
@_view_context_class @_view_renderer @_lookup_context
|
:@_view_context_class, :@_view_renderer, :@_lookup_context
|
||||||
)
|
]
|
||||||
|
|
||||||
# This method should return a hash with assigns.
|
# This method should return a hash with assigns.
|
||||||
# You can overwrite this configuration per controller.
|
# You can overwrite this configuration per controller.
|
||||||
# :api: public
|
# :api: public
|
||||||
def view_assigns
|
def view_assigns
|
||||||
hash = {}
|
hash = {}
|
||||||
variables = instance_variable_names
|
variables = instance_variables
|
||||||
variables -= protected_instance_variables
|
variables -= protected_instance_variables
|
||||||
variables -= DEFAULT_PROTECTED_INSTANCE_VARIABLES
|
variables -= DEFAULT_PROTECTED_INSTANCE_VARIABLES
|
||||||
variables.each { |name| hash[name.to_s[1, name.length]] = instance_variable_get(name) }
|
variables.each { |name| hash[name.to_s[1, name.length]] = instance_variable_get(name) }
|
||||||
|
|
|
@ -18,10 +18,10 @@ module ActionController
|
||||||
delegate :default_charset=, :to => "ActionDispatch::Response"
|
delegate :default_charset=, :to => "ActionDispatch::Response"
|
||||||
end
|
end
|
||||||
|
|
||||||
self.protected_instance_variables = %w(
|
self.protected_instance_variables = [
|
||||||
@_status @_headers @_params @_env @_response @_request
|
:@_status, :@_headers, :@_params, :@_env, :@_response, :@_request,
|
||||||
@_view_runtime @_stream @_url_options @_action_has_layout
|
:@_view_runtime, :@_stream, :@_url_options, :@_action_has_layout
|
||||||
)
|
]
|
||||||
|
|
||||||
def rescue_action(env)
|
def rescue_action(env)
|
||||||
raise env["action_dispatch.rescue.exception"]
|
raise env["action_dispatch.rescue.exception"]
|
||||||
|
|
|
@ -506,8 +506,8 @@ module ActionController
|
||||||
def check_required_ivars
|
def check_required_ivars
|
||||||
# Sanity check for required instance variables so we can give an
|
# Sanity check for required instance variables so we can give an
|
||||||
# understandable error message.
|
# understandable error message.
|
||||||
%w(@routes @controller @request @response).each do |iv_name|
|
[:@routes, :@controller, :@request, :@response].each do |iv_name|
|
||||||
if !(instance_variable_names.include?(iv_name) || instance_variable_names.include?(iv_name.to_sym)) || instance_variable_get(iv_name).nil?
|
if !instance_variable_defined?(iv_name) || instance_variable_get(iv_name).nil?
|
||||||
raise "#{iv_name} is nil: make sure you set it in your test's setup method."
|
raise "#{iv_name} is nil: make sure you set it in your test's setup method."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,7 +16,7 @@ class ActionController::Base
|
||||||
|
|
||||||
def assigns(key = nil)
|
def assigns(key = nil)
|
||||||
assigns = {}
|
assigns = {}
|
||||||
instance_variable_names.each do |ivar|
|
instance_variables.each do |ivar|
|
||||||
next if ActionController::Base.protected_instance_variables.include?(ivar)
|
next if ActionController::Base.protected_instance_variables.include?(ivar)
|
||||||
assigns[ivar[1..-1]] = instance_variable_get(ivar)
|
assigns[ivar[1..-1]] = instance_variable_get(ivar)
|
||||||
end
|
end
|
||||||
|
|
|
@ -67,7 +67,7 @@ class InnerJoinAssociationTest < ActiveRecord::TestCase
|
||||||
def test_find_with_implicit_inner_joins_does_not_set_associations
|
def test_find_with_implicit_inner_joins_does_not_set_associations
|
||||||
authors = Author.joins(:posts).select('authors.*')
|
authors = Author.joins(:posts).select('authors.*')
|
||||||
assert !authors.empty?, "expected authors to be non-empty"
|
assert !authors.empty?, "expected authors to be non-empty"
|
||||||
assert authors.all? {|a| !a.send(:instance_variable_names).include?("@posts")}, "expected no authors to have the @posts association loaded"
|
assert authors.all? { |a| !a.instance_variable_defined?(:@posts) }, "expected no authors to have the @posts association loaded"
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_count_honors_implicit_inner_joins
|
def test_count_honors_implicit_inner_joins
|
||||||
|
|
Loading…
Reference in a new issue