aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/helpers/atom_feed_helper.rb
diff options
context:
space:
mode:
authorMatthew M. Boedicker <matthewm@boedicker.org>2008-09-09 23:37:36 -0700
committerPratik Naik <pratiknaik@gmail.com>2008-10-13 18:46:32 +0200
commit42cbd710bb116998f92029adacb45698905a2e3b (patch)
tree46f14aa6311dbbdc6b9d41fb3dabefddb38f36ba /actionpack/lib/action_view/helpers/atom_feed_helper.rb
parentb47c76b1dfaaf1d99413b94179077cd58552ba88 (diff)
downloadrails-42cbd710bb116998f92029adacb45698905a2e3b.tar.gz
rails-42cbd710bb116998f92029adacb45698905a2e3b.tar.bz2
rails-42cbd710bb116998f92029adacb45698905a2e3b.zip
Add support for xml processing instructions in atom_feed_helper [#926 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'actionpack/lib/action_view/helpers/atom_feed_helper.rb')
-rw-r--r--actionpack/lib/action_view/helpers/atom_feed_helper.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/actionpack/lib/action_view/helpers/atom_feed_helper.rb b/actionpack/lib/action_view/helpers/atom_feed_helper.rb
index e65d5d1f60..8062d64924 100644
--- a/actionpack/lib/action_view/helpers/atom_feed_helper.rb
+++ b/actionpack/lib/action_view/helpers/atom_feed_helper.rb
@@ -51,6 +51,7 @@ module ActionView
# * <tt>:schema_date</tt>: The date at which the tag scheme for the feed was first used. A good default is the year you
# created the feed. See http://feedvalidator.org/docs/error/InvalidTAG.html for more information. If not specified,
# 2005 is used (as an "I don't care" value).
+ # * <tt>:instruct</tt>: Hash of XML processing instructions in the form {target => {attribute => value, }} or {target => [{attribute => value, }, ]}
#
# Other namespaces can be added to the root element:
#
@@ -85,6 +86,15 @@ module ActionView
xml = options[:xml] || eval("xml", block.binding)
xml.instruct!
+ if options[:instruct]
+ options[:instruct].each do |target,attrs|
+ if attrs.respond_to?(:keys)
+ xml.instruct!(target, attrs)
+ elsif attrs.respond_to?(:each)
+ attrs.each { |attr_group| xml.instruct!(target, attr_group) }
+ end
+ end
+ end
feed_opts = {"xml:lang" => options[:language] || "en-US", "xmlns" => 'http://www.w3.org/2005/Atom'}
feed_opts.merge!(options).reject!{|k,v| !k.to_s.match(/^xml/)}