aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/deprecated_request_methods.rb
diff options
context:
space:
mode:
authorTobias Lütke <tobias.luetke@gmail.com>2006-03-05 18:59:58 +0000
committerTobias Lütke <tobias.luetke@gmail.com>2006-03-05 18:59:58 +0000
commit03d37a2d68c1940f65d5a65a51ae747955a5b075 (patch)
treeaf6825facc53769e9c16a6cb97a3cc281c125613 /actionpack/lib/action_controller/deprecated_request_methods.rb
parent4f00c70580e376691bd1d6c1f9d09efbaa7bf9c9 (diff)
downloadrails-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.rb34
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