diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-11-07 17:46:03 -0500 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-11-07 21:20:26 -0500 |
commit | 07fe3370f8abe49b4c055d4eb8c39f1e73847eea (patch) | |
tree | 9d45f7361d97f2c16a1154795b1dfaed262ddde8 /actionpack/lib/action_view/helpers | |
parent | aaa2abf73fa39e0d455b4b781fb4d00e51d0bdc7 (diff) | |
download | rails-07fe3370f8abe49b4c055d4eb8c39f1e73847eea.tar.gz rails-07fe3370f8abe49b4c055d4eb8c39f1e73847eea.tar.bz2 rails-07fe3370f8abe49b4c055d4eb8c39f1e73847eea.zip |
Check whether last arg is a Hash instead of duck-typing against []
Diffstat (limited to 'actionpack/lib/action_view/helpers')
-rw-r--r-- | actionpack/lib/action_view/helpers/atom_feed_helper.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/actionpack/lib/action_view/helpers/atom_feed_helper.rb b/actionpack/lib/action_view/helpers/atom_feed_helper.rb index ccb7df212a..cd25684940 100644 --- a/actionpack/lib/action_view/helpers/atom_feed_helper.rb +++ b/actionpack/lib/action_view/helpers/atom_feed_helper.rb @@ -1,3 +1,5 @@ +require 'set' + # Adds easy defaults to writing Atom feeds with the Builder template engine (this does not work on ERb or any other # template languages). module ActionView @@ -121,6 +123,8 @@ module ActionView end class AtomBuilder + XHTML_TAG_NAMES = %w(content rights title subtitle summary).to_set + def initialize(xml) @xml = xml end @@ -140,14 +144,15 @@ module ActionView @xml.__send__(method, *arguments, &block) end end - + # True if the method name matches one of the five elements defined # in the Atom spec as potentially containing XHTML content and # if :type => 'xhtml' is, in fact, specified. def xhtml_block?(method, arguments) - %w( content rights title subtitle summary ).include?(method.to_s) && - arguments.last.respond_to?(:[]) && - arguments.last[:type].to_s == 'xhtml' + if XHTML_TAG_NAMES.include?(method.to_s) + last = arguments.last + last.is_a?(Hash) && last[:type].to_s == 'xhtml' + end end end |