Commit Graph

72 Commits

Author SHA1 Message Date
Jeremy Kemper
f73e1c2ec0 Move request parameter parsing from CGI to AbstractRequest.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6742 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-15 22:10:03 +00:00
Jeremy Kemper
6d3dc90c33 Lazy-read request.raw_post from request.body
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6741 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-15 22:01:00 +00:00
Jeremy Kemper
32d03af341 Introduce the request.body stream. Lazy-read to parse parameters rather than always setting RAW_POST_DATA. Reduces the memory footprint of large binary PUT requests.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6740 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-05-15 21:36:21 +00:00
Rick Olson
6351e0a541 The default respond_to blocks don't set a specific extension anymore, so that both 'show.rjs' and 'show.js.rjs' will work. [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6517 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-04-12 20:25:32 +00:00
Tobias Lütke
f39fe3091f Fix nil error for requests with empty PATH_INFO header such as those which are send by the ScanAlert spider
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6451 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-19 18:02:24 +00:00
Jeremy Kemper
dbf42e379b Prefer MIME constants to strings. Closes #7707.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6350 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-06 09:46:04 +00:00
Tobias Lütke
e52c28a425 Ignore odd charset declaration in CONTENT_TYPE header which would throw off mime type lookup.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6340 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-05 18:24:17 +00:00
David Heinemeier Hansson
8a1956bd99 Sans request please
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6317 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-04 20:44:01 +00:00
David Heinemeier Hansson
e0179c1254 Added Request#url that returns the complete URL used for the request [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6316 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-03-04 20:32:38 +00:00
David Heinemeier Hansson
2e55095f6f Added that rendering will automatically insert the etag header on 200 OK responses. The etag is calculated using MD5 of the response body. If a request comes in that has a matching etag, the response will be changed to a 304 Not Modified and the response body will be set to an empty string. [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6158 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-02-17 18:16:44 +00:00
David Heinemeier Hansson
06669f8b13 In tests, content_type can be nil, which would disturb accepts/format
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6155 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-02-15 18:52:08 +00:00
Jeremy Kemper
0eacdcf9a3 Use a consistent load path to avoid double requires. Fix some scattered Ruby warnings.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6057 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-28 07:16:55 +00:00
Jeremy Kemper
fe736a54f9 Set request.env['REQUEST_URI'] when absent.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5895 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2007-01-12 07:01:39 +00:00
Jeremy Kemper
e44f7fb07a Remove support for json in X-Post-Data-Format header since it's for backward compatibility only. References #4185.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5698 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-06 23:20:24 +00:00
Jeremy Kemper
42596543dc respond_to recognizes JSON. render :json => @person.to_json automatically sets the content type and takes a :callback option to specify a client-side function to call using the rendered JSON as an argument. References #4185.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5694 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-06 22:27:08 +00:00
David Heinemeier Hansson
7611fa6d46 Added Request#format to return the format used for the request as a mime type. If no format is specified, the first Request#accepts type is used. This means you can stop using respond_to for anything else than responses [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5664 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-02 23:07:04 +00:00
David Heinemeier Hansson
efd0bdd9ea * Added GET-masquarading for HEAD, so request.method will return :get even for HEADs. This will help anyone relying on case request.method to automatically work with HEAD and map.resources will also allow HEADs to all GET actions. Rails automatically throws away the response content in a reply to HEAD, so you dont even need to worry about that. If you, for whatever reason, still need to distinguish between GET and HEAD in some edge case, you can use Request#head? and even Request.headers["REQUEST_METHOD"] for get the "real" answer. Closes #6694 [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5621 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-11-23 23:24:47 +00:00
Jamis Buck
02dc646d55 Fix relative URL root matching problems
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5272 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-10-09 19:14:11 +00:00
Rick Olson
58b996f9b0 Restrict Request Method hacking with ?_method to POST requests. [Rick Olson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4644 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-01 03:02:31 +00:00
David Heinemeier Hansson
865b175765 Added map.resources from the Simply Restful plugin (backwards incompatible with the plugin!) [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4637 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-07-31 18:59:58 +00:00
Marcel Molina
cbded64014 Documentation for AbstractRequest. Closes #4895. [kevin.clark@gmail.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4277 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-26 18:35:53 +00:00
David Heinemeier Hansson
d19e8f412f Performance speedup for ActionController (closes #4174) [Stefan Kaes] Includes caching of filter chains -- be on the lookout for problems with that!
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3989 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-20 04:01:10 +00:00
Nicholas Seckar
240213177e Add ability for relative_url_root to be specified via an environment variable RAILS_RELATIVE_URL_ROOT. Closes #4243.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3931 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-18 16:45:40 +00:00
David Heinemeier Hansson
60e40647d7 Prepare for mime type reordering depending on the branch [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3850 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-12 19:01:09 +00:00
David Heinemeier Hansson
de37f7df4f Mime types are separated by a comma, not semicolon, in the Accept header. Also switch all internal configuration of mime types away from strings and over to Mime::Type [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3847 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-12 16:03:44 +00:00
David Heinemeier Hansson
7af12d04ce Added synonym and custom type handling to respond_to [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3844 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-12 06:02:44 +00:00
David Heinemeier Hansson
9e2932f816 Assume that we accept what we give [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3843 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-12 05:13:55 +00:00
David Heinemeier Hansson
1c16649b48 Added better support for using the same actions to output for different sources depending on the Accept header [DHH] Added Base#render(:xml => xml) that works just like Base#render(:text => text), but sets the content-type to text/xml and the charset to UTF-8 [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3838 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-11 01:23:29 +00:00
David Heinemeier Hansson
6fd737b76b Proper options for XmlSimple
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3808 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-07 04:52:49 +00:00
Tobias Lütke
03d37a2d68 Added new infrastructure support for REST webservices.
By default application/xml posts are handled by creating a XmlNode object with the same name as the root element of the submitted xml. M$

 ActionController::Base.param_parsers['application/atom+xml'] = Proc.new do |data|
    node = REXML::Document.new(post)
   { node.root.name => node.root }
 end

 XmlSimple and Yaml web services were retired, ActionController::Base.param_parsers carries an example which shows how to get this functio$
 request.[formatted_post?, xml_post?, yaml_post? and post_format] were all deprecated in favor of request.content_type [Tobias Luetke]

Closes #4081


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3777 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-05 18:59:58 +00:00
Jeremy Kemper
7654082260 Major components cleanup and speedup. Closes #3527.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3563 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-02-09 20:05:11 +00:00
David Heinemeier Hansson
010e999092 Fixed that SSL would not correctly be detected when running lighttpd/fcgi behind lighttpd w/mod_proxy (closes #3548) [stephen_purcell@yahoo.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3467 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-01-23 05:32:59 +00:00
Jeremy Kemper
c140e80fc4 More robust relative url root discovery for SCGI compatibility. This solves the 'SCGI routes problem' -- you no longer need to prefix all your routes with the name of the SCGI mountpoint. References #3070.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3237 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-12-08 04:40:24 +00:00
Jeremy Kemper
991189b58d Document request.env and request.host. Strip trailing whitespace.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3103 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-11-20 05:31:33 +00:00
Jamis Buck
1c057b7237 Update/clean up AP documentation (rdoc)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2649 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-10-16 15:42:03 +00:00
Nicholas Seckar
e0e8f0a302 Fix Request#host_with_port to use the standard port when Rails is behind a proxy.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2596 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-10-15 01:00:25 +00:00
David Heinemeier Hansson
47292cdef7 Fixed that Request#domain caused an exception if the domain header wasn't set in the original http request #1795 [Michael Koziarski]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2270 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-20 06:44:53 +00:00
David Heinemeier Hansson
e9504bb6f7 Cache relative_url_root for all webservers, not just Apache #2193 [skae]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2246 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-15 05:32:16 +00:00
Nicholas Seckar
c0e84b811e Ensure that request.path never returns nil. Closes #1675
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2206 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-11 14:10:20 +00:00
Jamis Buck
6c44d35268 AbstractRequest#domain returns nil when host is an ip address #2012 [kevin.clark@gmail.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2098 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-09-02 09:10:31 +00:00
David Heinemeier Hansson
b366dbd952 Improved performance with 5-30% through a series of Action Pack optimizations #1811 [Stefan Kaes]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1905 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-07-23 09:00:05 +00:00
Jamis Buck
847f738cfd Make Request#subdomains handle "foo.foo.com" correctly
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1817 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-07-12 16:16:13 +00:00
David Heinemeier Hansson
8e56f5ea3e Improved performance of Routes generation by a factor of 5 #1434 [Nicholas Seckar] Added named routes (NEEDS BETTER DESCRIPTION) #1434 [Nicholas Seckar]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1496 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-24 16:40:01 +00:00
Jeremy Kemper
540d005ca5 Improved AbstractRequest documentation. Closes #1483.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1494 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-24 14:43:15 +00:00
David Heinemeier Hansson
1e0d9a642f Added :xhr => true/false option to verify so you can ensure that a request is coming from an Ajax call or not #1464 [Thomas Fuchs]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1463 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-21 07:02:30 +00:00
David Heinemeier Hansson
92473b8f96 Fixed relative urls support for lighttpd #1048 [Nicholas Seckar/maznawak@nerim.net]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1450 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-18 05:17:18 +00:00
David Heinemeier Hansson
0367317dd6 Deprecated redirect_to_path and redirect_to_url in favor of letting redirect_to do the right thing when passed either a path or url. Introduced r as a unified method for render (still under construction)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1349 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-22 07:43:05 +00:00
David Heinemeier Hansson
997eb90c90 Made the post_format work with content-type
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1337 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-20 18:39:40 +00:00
David Heinemeier Hansson
24b13acd42 Made the post_format work with content-type
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1336 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-20 18:32:04 +00:00
David Heinemeier Hansson
caf6ff6a2f Cache relative_url_root and optimize path #1232 [skaen]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1325 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-19 18:55:50 +00:00