diff options
author | Tobias Lütke <tobias.luetke@gmail.com> | 2006-03-05 18:59:58 +0000 |
---|---|---|
committer | Tobias Lütke <tobias.luetke@gmail.com> | 2006-03-05 18:59:58 +0000 |
commit | 03d37a2d68c1940f65d5a65a51ae747955a5b075 (patch) | |
tree | af6825facc53769e9c16a6cb97a3cc281c125613 /actionpack/lib/action_controller/deprecated_request_methods.rb | |
parent | 4f00c70580e376691bd1d6c1f9d09efbaa7bf9c9 (diff) | |
download | rails-03d37a2d68c1940f65d5a65a51ae747955a5b075.tar.gz rails-03d37a2d68c1940f65d5a65a51ae747955a5b075.tar.bz2 rails-03d37a2d68c1940f65d5a65a51ae747955a5b075.zip |
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
Diffstat (limited to 'actionpack/lib/action_controller/deprecated_request_methods.rb')
-rw-r--r-- | actionpack/lib/action_controller/deprecated_request_methods.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/deprecated_request_methods.rb b/actionpack/lib/action_controller/deprecated_request_methods.rb new file mode 100644 index 0000000000..0364831873 --- /dev/null +++ b/actionpack/lib/action_controller/deprecated_request_methods.rb @@ -0,0 +1,34 @@ +module ActionController + class AbstractRequest + # Determine whether the body of a HTTP call is URL-encoded (default) + # or matches one of the registered param_parsers. + # + # For backward compatibility, the post format is extracted from the + # X-Post-Data-Format HTTP header if present. + def post_format + case content_type + when 'application/xml' + :xml + when 'application/x-yaml' + :yaml + else + :url_encoded + end + end + + # Is this a POST request formatted as XML or YAML? + def formatted_post? + post? && (post_format == :yaml || post_format == :xml) + end + + # Is this a POST request formatted as XML? + def xml_post? + post? && post_format == :xml + end + + # Is this a POST request formatted as YAML? + def yaml_post? + post? && post_format == :yaml + end + end +end |