mirror of
https://github.com/github/rails.git
synced 2026-04-04 03:00:58 -04:00
Check for uninitialized instance variables
This commit is contained in:
@@ -453,7 +453,7 @@ module ActionController #:nodoc:
|
||||
# ArticleController.prepend_view_path(["views/default", "views/custom"])
|
||||
#
|
||||
def prepend_view_path(path)
|
||||
@view_paths = superclass.view_paths.dup if @view_paths.nil?
|
||||
@view_paths = superclass.view_paths.dup if !defined?(@view_paths) || @view_paths.nil?
|
||||
@view_paths.unshift(*path)
|
||||
end
|
||||
|
||||
|
||||
@@ -278,9 +278,9 @@ module ActionView #:nodoc:
|
||||
# the same name but differing formats. See +Request#template_format+
|
||||
# for more details.
|
||||
def template_format
|
||||
return @template_format if @template_format
|
||||
|
||||
if controller && controller.respond_to?(:request)
|
||||
if defined? @template_format
|
||||
@template_format
|
||||
elsif controller && controller.respond_to?(:request)
|
||||
@template_format = controller.request.template_format
|
||||
else
|
||||
@template_format = :html
|
||||
@@ -366,7 +366,9 @@ module ActionView #:nodoc:
|
||||
end
|
||||
else
|
||||
begin
|
||||
original_content_for_layout, @content_for_layout = @content_for_layout, render(options)
|
||||
original_content_for_layout = @content_for_layout if defined?(@content_for_layout)
|
||||
@content_for_layout = render(options)
|
||||
|
||||
if (options[:inline] || options[:file] || options[:text])
|
||||
@cached_content_for_layout = @content_for_layout
|
||||
render(:file => partial_layout, :locals => local_assigns)
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
module ActionView
|
||||
module Renderable
|
||||
# NOTE: The template that this mixin is beening include into is frozen
|
||||
# So you can not set or modify any instance variables
|
||||
|
||||
# NOTE: The template that this mixin is being included into is frozen
|
||||
# so you cannot set or modify any instance variables
|
||||
module Renderable #:nodoc:
|
||||
extend ActiveSupport::Memoizable
|
||||
|
||||
def self.included(base)
|
||||
@@ -33,10 +32,11 @@ module ActionView
|
||||
view.send(:_set_controller_content_type, mime_type) if respond_to?(:mime_type)
|
||||
|
||||
view.send(method_name(local_assigns), local_assigns) do |*names|
|
||||
if proc = view.instance_variable_get("@_proc_for_layout")
|
||||
ivar = :@_proc_for_layout
|
||||
if view.instance_variable_defined?(ivar) and proc = view.instance_variable_get(ivar)
|
||||
view.capture(*names, &proc)
|
||||
else
|
||||
view.instance_variable_get("@content_for_#{names.first || 'layout'}")
|
||||
elsif view.instance_variable_defined?(ivar = :"@content_for_#{names.first || :layout}")
|
||||
view.instance_variable_get(ivar)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
module ActionView
|
||||
module RenderablePartial
|
||||
# NOTE: The template that this mixin is beening include into is frozen
|
||||
# So you can not set or modify any instance variables
|
||||
|
||||
# NOTE: The template that this mixin is being included into is frozen
|
||||
# so you cannot set or modify any instance variables
|
||||
module RenderablePartial #:nodoc:
|
||||
extend ActiveSupport::Memoizable
|
||||
|
||||
def variable_name
|
||||
@@ -30,10 +29,13 @@ module ActionView
|
||||
local_assigns[variable_name]
|
||||
|
||||
if view.respond_to?(:controller)
|
||||
object ||= ActiveSupport::Deprecation::DeprecatedObjectProxy.new(
|
||||
view.controller.instance_variable_get("@#{variable_name}"),
|
||||
"@#{variable_name} will no longer be implicitly assigned to #{variable_name}"
|
||||
)
|
||||
ivar = :"@#{variable_name}"
|
||||
object ||=
|
||||
if view.controller.instance_variable_defined?(ivar)
|
||||
ActiveSupport::Deprecation::DeprecatedObjectProxy.new(
|
||||
view.controller.instance_variable_get(ivar),
|
||||
"#{ivar} will no longer be implicitly assigned to #{variable_name}")
|
||||
end
|
||||
end
|
||||
|
||||
# Ensure correct object is reassigned to other accessors
|
||||
|
||||
Reference in New Issue
Block a user