mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Deprecation: remove deprecated instance variables.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6399 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
9c0fe36d46
commit
83c8db9818
35 changed files with 7 additions and 142 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Deprecation: remove deprecated instance variables. [Jeremy Kemper]
|
||||
|
||||
* Consistent public/protected/private visibility for chained methods. #7813 [Dan Manges]
|
||||
|
||||
* Prefer MIME constants to strings. #7707 [Dan Kubb]
|
||||
|
|
|
@ -1112,25 +1112,6 @@ module ActionController #:nodoc:
|
|||
@assigns = @_response.template.assigns
|
||||
|
||||
@_headers = @_response.headers
|
||||
|
||||
assign_deprecated_shortcuts(request, response)
|
||||
end
|
||||
|
||||
# TODO: assigns cookies headers params request response template
|
||||
DEPRECATED_INSTANCE_VARIABLES = %w(cookies flash headers params request response session)
|
||||
|
||||
# Gone after 1.2.
|
||||
def assign_deprecated_shortcuts(request, response)
|
||||
DEPRECATED_INSTANCE_VARIABLES.each do |method|
|
||||
var = "@#{method}"
|
||||
if instance_variables.include?(var)
|
||||
value = instance_variable_get(var)
|
||||
unless ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy === value
|
||||
raise "Deprecating #{var}, but it's already set to #{value.inspect}! Use the #{method}= writer method instead of setting #{var} directly."
|
||||
end
|
||||
end
|
||||
instance_variable_set var, ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(self, method)
|
||||
end
|
||||
end
|
||||
|
||||
def initialize_current_url
|
||||
|
|
|
@ -157,7 +157,7 @@ module ActionView #:nodoc:
|
|||
attr_accessor :controller
|
||||
|
||||
attr_reader :logger, :response, :headers
|
||||
attr_internal(*ActionController::Base::DEPRECATED_INSTANCE_VARIABLES)
|
||||
attr_internal :cookies, :flash, :headers, :params, :request, :response, :session
|
||||
|
||||
# Specify trim mode for the ERB compiler. Defaults to '-'.
|
||||
# See ERB documentation for suitable values.
|
||||
|
@ -555,4 +555,4 @@ module ActionView #:nodoc:
|
|||
end
|
||||
end
|
||||
|
||||
require 'action_view/template_error'
|
||||
require 'action_view/template_error'
|
||||
|
|
|
@ -10,8 +10,6 @@ module ActionView
|
|||
@base_path, @assigns, @source, @original_exception =
|
||||
base_path, assigns.dup, source, original_exception
|
||||
@file_path = file_path
|
||||
|
||||
remove_deprecated_assigns!
|
||||
end
|
||||
|
||||
def message
|
||||
|
@ -82,12 +80,6 @@ module ActionView
|
|||
end
|
||||
|
||||
private
|
||||
def remove_deprecated_assigns!
|
||||
ActionController::Base::DEPRECATED_INSTANCE_VARIABLES.each do |ivar|
|
||||
@assigns.delete(ivar)
|
||||
end
|
||||
end
|
||||
|
||||
def strip_base_path(path)
|
||||
File.expand_path(path).
|
||||
gsub(/^#{Regexp.escape File.expand_path(RAILS_ROOT)}/, '').
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
require File.dirname(__FILE__) + '/../abstract_unit'
|
||||
|
||||
class DeprecatedControllerInstanceVariablesTest < Test::Unit::TestCase
|
||||
class Target < ActionController::Base
|
||||
def initialize(run = nil)
|
||||
instance_eval(run) if run
|
||||
super()
|
||||
end
|
||||
|
||||
def noop
|
||||
render :nothing => true
|
||||
end
|
||||
|
||||
ActionController::Base::DEPRECATED_INSTANCE_VARIABLES.each do |var|
|
||||
class_eval "def old_#{var}; render :text => @#{var}.to_s end"
|
||||
class_eval "def new_#{var}; render :text => #{var}.to_s end"
|
||||
class_eval "def internal_#{var}; render :text => @_#{var}.to_s end"
|
||||
end
|
||||
|
||||
def rescue_action(e) raise e end
|
||||
end
|
||||
|
||||
def setup
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
@controller = Target.new
|
||||
end
|
||||
|
||||
ActionController::Base::DEPRECATED_INSTANCE_VARIABLES.each do |var|
|
||||
class_eval <<-end_eval, __FILE__, __LINE__
|
||||
def test_old_#{var}_is_deprecated
|
||||
assert_deprecated('@#{var}') { get :old_#{var} }
|
||||
end
|
||||
def test_new_#{var}_isnt_deprecated
|
||||
assert_not_deprecated { get :new_#{var} }
|
||||
end
|
||||
def test_internal_#{var}_isnt_deprecated
|
||||
assert_not_deprecated { get :internal_#{var} }
|
||||
end
|
||||
def test_#{var}_raises_if_already_set
|
||||
assert_raise(RuntimeError) do
|
||||
@controller = Target.new '@#{var} = Object.new'
|
||||
get :noop
|
||||
end
|
||||
end
|
||||
end_eval
|
||||
end
|
||||
end
|
|
@ -460,14 +460,9 @@ class NewRenderTest < Test::Unit::TestCase
|
|||
ActionController::Base.protected_variables_cache = nil
|
||||
|
||||
get :hello_world
|
||||
assert assigns.include?('request'), 'request should be in assigns'
|
||||
assert_deprecated 'request' do
|
||||
assert_kind_of ActionController::AbstractRequest, assigns['request']
|
||||
end
|
||||
assert_not_deprecated do
|
||||
assert_kind_of ActionController::AbstractRequest, @response.template.request
|
||||
assert_kind_of ActionController::AbstractRequest, assigns['_request']
|
||||
end
|
||||
assert !assigns.include?('request'), 'request should not be in assigns'
|
||||
assert_kind_of ActionController::AbstractRequest, assigns['_request']
|
||||
assert_kind_of ActionController::AbstractRequest, @response.template.request
|
||||
|
||||
ensure
|
||||
ActionController::Base.view_controller_internals = view_internals_old_value
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
<%= @cookies[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= cookies[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= @flash[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= flash[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= @headers[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= headers[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= @params[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= params[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= @request.method %>
|
|
@ -1 +0,0 @@
|
|||
<%= request.method %>
|
|
@ -1 +0,0 @@
|
|||
<%= @response.body %>
|
|
@ -1 +0,0 @@
|
|||
<%= response.body %>
|
|
@ -1 +0,0 @@
|
|||
<%= @session[:test] %>
|
|
@ -1 +0,0 @@
|
|||
<%= session[:test] %>
|
|
@ -1,43 +0,0 @@
|
|||
require "#{File.dirname(__FILE__)}/../abstract_unit"
|
||||
|
||||
class DeprecatedViewInstanceVariablesTest < Test::Unit::TestCase
|
||||
class DeprecatedInstanceVariablesController < ActionController::Base
|
||||
self.view_paths = [ "#{File.dirname(__FILE__)}/../fixtures/" ]
|
||||
|
||||
def self.controller_path; 'deprecated_instance_variables' end
|
||||
|
||||
ActionController::Base::DEPRECATED_INSTANCE_VARIABLES.each do |var|
|
||||
class_eval <<-end_eval
|
||||
def old_#{var}_inline; render :inline => '<%= @#{var}.to_s %>' end
|
||||
def new_#{var}_inline; render :inline => '<%= #{var}.to_s %>' end
|
||||
def old_#{var}_partial; render :partial => '#{var}_ivar' end
|
||||
def new_#{var}_partial; render :partial => '#{var}_method' end
|
||||
end_eval
|
||||
end
|
||||
|
||||
def rescue_action(e) raise e end
|
||||
end
|
||||
|
||||
def setup
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
@controller = DeprecatedInstanceVariablesController.new
|
||||
end
|
||||
|
||||
ActionController::Base::DEPRECATED_INSTANCE_VARIABLES.each do |var|
|
||||
class_eval <<-end_eval, __FILE__, __LINE__
|
||||
def test_old_#{var}_is_deprecated
|
||||
assert_deprecated('@#{var}') { get :old_#{var}_inline }
|
||||
end
|
||||
def test_new_#{var}_isnt_deprecated
|
||||
assert_not_deprecated { get :new_#{var}_inline }
|
||||
end
|
||||
def test_old_#{var}_partial_is_deprecated
|
||||
assert_deprecated('@#{var}') { get :old_#{var}_partial }
|
||||
end
|
||||
def test_new_#{var}_partial_isnt_deprecated
|
||||
assert_not_deprecated { get :new_#{var}_partial }
|
||||
end
|
||||
end_eval
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue