1
0
Fork 0
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:
Jeremy Kemper 2007-03-13 03:49:52 +00:00
parent 9c0fe36d46
commit 83c8db9818
35 changed files with 7 additions and 142 deletions

View file

@ -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]

View file

@ -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

View file

@ -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'

View file

@ -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)}/, '').

View file

@ -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

View file

@ -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

View file

@ -1 +0,0 @@
<%= @cookies[:test] %>

View file

@ -1 +0,0 @@
<%= cookies[:test] %>

View file

@ -1 +0,0 @@
<%= @flash[:test] %>

View file

@ -1 +0,0 @@
<%= flash[:test] %>

View file

@ -1 +0,0 @@
<%= @headers[:test] %>

View file

@ -1 +0,0 @@
<%= headers[:test] %>

View file

@ -1 +0,0 @@
<%= @params[:test] %>

View file

@ -1 +0,0 @@
<%= params[:test] %>

View file

@ -1 +0,0 @@
<%= @request.method %>

View file

@ -1 +0,0 @@
<%= request.method %>

View file

@ -1 +0,0 @@
<%= @response.body %>

View file

@ -1 +0,0 @@
<%= response.body %>

View file

@ -1 +0,0 @@
<%= @session[:test] %>

View file

@ -1 +0,0 @@
<%= session[:test] %>

View file

@ -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