aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal
diff options
context:
space:
mode:
authorCarlhuda <carlhuda@engineyard.com>2010-03-02 17:20:13 -0800
committerCarlhuda <carlhuda@engineyard.com>2010-03-03 15:49:52 -0800
commitbcfb77782b9d7f28f0c19005da909162e5e27690 (patch)
tree136ab5091182ae2b927d31f9a5453b050d647925 /actionpack/lib/action_controller/metal
parent664090348154ccbf1274a13bbc3d3c37ba35bc7d (diff)
downloadrails-bcfb77782b9d7f28f0c19005da909162e5e27690.tar.gz
rails-bcfb77782b9d7f28f0c19005da909162e5e27690.tar.bz2
rails-bcfb77782b9d7f28f0c19005da909162e5e27690.zip
Work on deprecating ActionController::Base.relative_url_root
Diffstat (limited to 'actionpack/lib/action_controller/metal')
-rw-r--r--actionpack/lib/action_controller/metal/compatibility.rb41
-rw-r--r--actionpack/lib/action_controller/metal/session_management.rb16
-rw-r--r--actionpack/lib/action_controller/metal/url_for.rb4
3 files changed, 43 insertions, 18 deletions
diff --git a/actionpack/lib/action_controller/metal/compatibility.rb b/actionpack/lib/action_controller/metal/compatibility.rb
index d1c86b296d..93f7b8ca49 100644
--- a/actionpack/lib/action_controller/metal/compatibility.rb
+++ b/actionpack/lib/action_controller/metal/compatibility.rb
@@ -7,13 +7,17 @@ module ActionController
class ::ActionController::ActionControllerError < StandardError #:nodoc:
end
+ module ClassMethods
+ end
+
# Temporary hax
included do
::ActionController::UnknownAction = ::AbstractController::ActionNotFound
::ActionController::DoubleRenderError = ::AbstractController::DoubleRenderError
- cattr_accessor :relative_url_root
- self.relative_url_root = ENV['RAILS_RELATIVE_URL_ROOT']
+ # ROUTES TODO: This should be handled by a middleware and route generation
+ # should be able to handle SCRIPT_NAME
+ self.config.relative_url_root = ENV['RAILS_RELATIVE_URL_ROOT']
class << self
delegate :default_charset=, :to => "ActionDispatch::Response"
@@ -47,6 +51,39 @@ module ActionController
cattr_accessor :trusted_proxies
end
+ def self.deprecated_config_accessor(option, message = nil)
+ deprecated_config_reader(option, message)
+ deprecated_config_writer(option, message)
+ end
+
+ def self.deprecated_config_reader(option, message = nil)
+ message ||= "Reading #{option} directly from ActionController::Base is deprecated. " \
+ "Please read it from config.#{option}"
+
+ ClassMethods.class_eval <<-RUBY, __FILE__, __LINE__ + 1
+ def #{option}
+ ActiveSupport::Deprecation.warn #{message.inspect}
+ config.#{option}
+ end
+ RUBY
+ end
+
+ def self.deprecated_config_writer(option, message = nil)
+ message ||= "Setting #{option} directly on ActionController::Base is deprecated. " \
+ "Please set it on config.action_controller.#{option}"
+
+ ClassMethods.class_eval <<-RUBY, __FILE__, __LINE__ + 1
+ def #{option}=(val)
+ ActiveSupport::Deprecation.warn #{message.inspect}
+ config.#{option} = val
+ end
+ RUBY
+ end
+
+ deprecated_config_writer :session_store
+ deprecated_config_writer :session_options
+ deprecated_config_accessor :relative_url_root, "relative_url_root is ineffective. Please stop using it"
+
# For old tests
def initialize_template_class(*) end
def assign_shortcuts(*) end
diff --git a/actionpack/lib/action_controller/metal/session_management.rb b/actionpack/lib/action_controller/metal/session_management.rb
index 264250db1a..09ef9261a4 100644
--- a/actionpack/lib/action_controller/metal/session_management.rb
+++ b/actionpack/lib/action_controller/metal/session_management.rb
@@ -8,22 +8,6 @@ module ActionController #:nodoc:
end
module ClassMethods
- # Set the session store to be used for keeping the session data between requests.
- # By default, sessions are stored in browser cookies (<tt>:cookie_store</tt>),
- # but you can also specify one of the other included stores (<tt>:active_record_store</tt>,
- # <tt>:mem_cache_store</tt>, or your own custom class.
- def session_store=(store)
- ActiveSupport::Deprecation.warn "Setting session_store directly on ActionController::Base is deprecated. " \
- "Please set it on config.action_controller.session_store"
- config.session_store = store
- end
-
- def session_options=(opts)
- ActiveSupport::Deprecation.warn "Setting seession_options directly on ActionController::Base is deprecated. " \
- "Please set it on config.action_controller.session_options"
- config.session_store = opts
- end
-
def session_options
config.session_options
end
diff --git a/actionpack/lib/action_controller/metal/url_for.rb b/actionpack/lib/action_controller/metal/url_for.rb
index 8a06f34d23..c890dc51d4 100644
--- a/actionpack/lib/action_controller/metal/url_for.rb
+++ b/actionpack/lib/action_controller/metal/url_for.rb
@@ -9,6 +9,10 @@ module ActionController
super.reverse_merge(
:host => request.host_with_port,
:protocol => request.protocol,
+ # ROUTES TODO: relative_url_root should be middleware
+ # and the generator should take SCRIPT_NAME into
+ # consideration
+ :relative_url_root => config.relative_url_root,
:_path_segments => request.symbolized_path_parameters
)
end