From 9840dc84f1727f91228250b874ba06dc97c631f0 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 18 Mar 2006 06:43:37 +0000 Subject: Allow for respond_to(:html, :js, :xml) (closes #4277) [Caio Chassot] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3919 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/mime_responds.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'actionpack/lib/action_controller/mime_responds.rb') diff --git a/actionpack/lib/action_controller/mime_responds.rb b/actionpack/lib/action_controller/mime_responds.rb index 140209a225..d492b6c258 100644 --- a/actionpack/lib/action_controller/mime_responds.rb +++ b/actionpack/lib/action_controller/mime_responds.rb @@ -5,9 +5,11 @@ module ActionController #:nodoc: end module InstanceMethods - def respond_to(&block) + def respond_to(*types, &block) + raise ArgumentError, "respond_to takes either types or a block, never bot" unless types.any? ^ block + block ||= lambda { |responder| types.each { |type| responder.send(type) } } responder = Responder.new(block.binding) - yield responder + block.call(responder) responder.respond end end -- cgit v1.2.3