diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2006-02-09 20:05:11 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2006-02-09 20:05:11 +0000 |
commit | 76540822609415dc5cfa8ea31bfafea602373a27 (patch) | |
tree | 962efec0474b2b30f2edded13b2d95e93e68f603 /actionpack/lib/action_controller/cgi_process.rb | |
parent | 3a38c829e0790a4341dcb5784118731361f6c788 (diff) | |
download | rails-76540822609415dc5cfa8ea31bfafea602373a27.tar.gz rails-76540822609415dc5cfa8ea31bfafea602373a27.tar.bz2 rails-76540822609415dc5cfa8ea31bfafea602373a27.zip |
Major components cleanup and speedup. Closes #3527.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3563 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_controller/cgi_process.rb')
-rw-r--r-- | actionpack/lib/action_controller/cgi_process.rb | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/actionpack/lib/action_controller/cgi_process.rb b/actionpack/lib/action_controller/cgi_process.rb index 1690f0bb58..b22921ce8b 100644 --- a/actionpack/lib/action_controller/cgi_process.rb +++ b/actionpack/lib/action_controller/cgi_process.rb @@ -43,18 +43,19 @@ module ActionController #:nodoc: def initialize(cgi, session_options = {}) @cgi = cgi @session_options = session_options + @env = @cgi.send(:env_table) super() end def query_string if (qs = @cgi.query_string) && !qs.empty? qs - elsif uri = env['REQUEST_URI'] + elsif uri = @env['REQUEST_URI'] parts = uri.split('?') parts.shift parts.join('?') else - env['QUERY_STRING'] || '' + @env['QUERY_STRING'] || '' end end @@ -64,24 +65,20 @@ module ActionController #:nodoc: def request_parameters if formatted_post? - CGIMethods.parse_formatted_request_parameters(post_format, env['RAW_POST_DATA']) + CGIMethods.parse_formatted_request_parameters(post_format, @env['RAW_POST_DATA']) else CGIMethods.parse_request_parameters(@cgi.params) end end - - def env - @cgi.send(:env_table) - end - + def cookies @cgi.cookies.freeze end def host - if env["HTTP_X_FORWARDED_HOST"] - env["HTTP_X_FORWARDED_HOST"].split(/,\s?/).last - elsif env['HTTP_HOST'] =~ /^(.*):\d+$/ + if @env["HTTP_X_FORWARDED_HOST"] + @env["HTTP_X_FORWARDED_HOST"].split(/,\s?/).last + elsif @env['HTTP_HOST'] =~ /^(.*):\d+$/ $1 else @cgi.host.to_s.split(":").first || '' @@ -89,11 +86,11 @@ module ActionController #:nodoc: end def port - env["HTTP_X_FORWARDED_HOST"] ? standard_port : (port_from_http_host || super) + @env["HTTP_X_FORWARDED_HOST"] ? standard_port : (port_from_http_host || super) end def port_from_http_host - $1.to_i if env['HTTP_HOST'] && /:(\d+)$/ =~ env['HTTP_HOST'] + $1.to_i if @env['HTTP_HOST'] && /:(\d+)$/ =~ @env['HTTP_HOST'] end def session @@ -142,7 +139,7 @@ module ActionController #:nodoc: Module.const_missing($1) rescue LoadError, NameError => const_error raise ActionController::SessionRestoreError, <<end_msg -Session contains objects whose class definition isn't available. +Session contains objects whose class definition isn\'t available. Remember to require the classes for all objects kept in the session. (Original exception: #{const_error.message} [#{const_error.class}]) end_msg |