# File lib/sinatra/respond_with.rb, line 157 def respond_to(&block) Format.new(self).finish(&block) end
# File lib/sinatra/respond_with.rb, line 130 def respond_with(template, object = nil, &block) object, template = template, nil unless Symbol === template format = Format.new(self) format.on "*/*" do |type| exts = settings.ext_map[type] exts << :xml if type.end_with? '+xml' if template args = template_cache.fetch(type, template) { template_for(template, exts) } if args.any? locals = { :object => object } locals.merge! object.to_hash if object.respond_to? :to_hash args << { :locals => locals } halt send(*args) end end if object exts.each do |ext| halt json(object) if ext == :json next unless meth = "to_#{ext}" and object.respond_to? meth halt(*object.send(meth)) end end false end format.finish(&block) end
Generated with the Darkfish Rdoc Generator 2.