diff options
author | Yehuda Katz <wycats@gmail.com> | 2009-03-18 15:58:47 -0700 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-03-18 15:58:47 -0700 |
commit | e0447023db7152d3ecdf693bd9aa36c7daa02653 (patch) | |
tree | 6819a42c250674f0d5f48849c1c597a9b54db5f3 /actionpack/lib | |
parent | fb626ee39065512928c90c396db8b5476c5a7aeb (diff) | |
download | rails-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')
-rw-r--r-- | actionpack/lib/action_controller/abstract/renderer.rb | 6 | ||||
-rw-r--r-- | actionpack/lib/action_controller/new_base/renderer.rb | 27 |
2 files changed, 30 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/abstract/renderer.rb b/actionpack/lib/action_controller/abstract/renderer.rb index dce411be92..537335aa0e 100644 --- a/actionpack/lib/action_controller/abstract/renderer.rb +++ b/actionpack/lib/action_controller/abstract/renderer.rb @@ -22,8 +22,12 @@ module AbstractController end def render(template = action_name) + self.response_body = render_to_string(template) + end + + def render_to_string(template = action_name) tmp = view_paths.find_by_parts(template.to_s, formats, _prefix) - self.response_body = _render_template(tmp) + _render_template(tmp) end def _render_template(tmp) 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 |