aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/new_base/renderer.rb
diff options
context:
space:
mode:
authorYehuda Katz <wycats@gmail.com>2009-03-18 15:58:47 -0700
committerYehuda Katz <wycats@gmail.com>2009-03-18 15:58:47 -0700
commite0447023db7152d3ecdf693bd9aa36c7daa02653 (patch)
tree6819a42c250674f0d5f48849c1c597a9b54db5f3 /actionpack/lib/action_controller/new_base/renderer.rb
parentfb626ee39065512928c90c396db8b5476c5a7aeb (diff)
downloadrails-e0447023db7152d3ecdf693bd9aa36c7daa02653.tar.gz
rails-e0447023db7152d3ecdf693bd9aa36c7daa02653.tar.bz2
rails-e0447023db7152d3ecdf693bd9aa36c7daa02653.zip
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
Diffstat (limited to 'actionpack/lib/action_controller/new_base/renderer.rb')
-rw-r--r--actionpack/lib/action_controller/new_base/renderer.rb27
1 files changed, 25 insertions, 2 deletions
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