From e0447023db7152d3ecdf693bd9aa36c7daa02653 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Wed, 18 Mar 2009 15:58:47 -0700 Subject: Implemented basic template rendering in AC::Base2: * Created several macros for writing simpler specs * Finished making Rack::Test work right * Implemented render_to_string * Status Codes * render :text => nil --- .../lib/action_controller/new_base/renderer.rb | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'actionpack/lib/action_controller/new_base/renderer.rb') diff --git a/actionpack/lib/action_controller/new_base/renderer.rb b/actionpack/lib/action_controller/new_base/renderer.rb index 503450c246..eb3c8b808d 100644 --- a/actionpack/lib/action_controller/new_base/renderer.rb +++ b/actionpack/lib/action_controller/new_base/renderer.rb @@ -2,10 +2,33 @@ module ActionController module Renderer def render(options) - if text = options[:text] - self.response_body = text + _process_options(options) + + self.response_body = render_to_string(options) + end + + def render_to_string(options) + self.formats = [:html] + + if options.key?(:text) + text = options.delete(:text) + + case text + when nil then " " + else text.to_s + end + elsif options.key?(:template) + template = options.delete(:template) + + super(template) end end + private + def _process_options(options) + if status = options.delete(:status) + response.status = status.to_i + end + end end end \ No newline at end of file -- cgit v1.2.3