diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2009-12-20 17:15:31 -0800 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2009-12-20 17:15:31 -0800 |
commit | 83f4d86a9330533ec9af21ba18b4ab28011b8981 (patch) | |
tree | a5145f9230797f88eb34c3e28c55ba93a706e1f1 /actionpack/lib/action_controller/metal/rendering.rb | |
parent | bdccffc40eee1e11b7e5f3516bffa4c46bf97b30 (diff) | |
download | rails-83f4d86a9330533ec9af21ba18b4ab28011b8981.tar.gz rails-83f4d86a9330533ec9af21ba18b4ab28011b8981.tar.bz2 rails-83f4d86a9330533ec9af21ba18b4ab28011b8981.zip |
Rename the RenderingController module to just plain Rendering
Diffstat (limited to 'actionpack/lib/action_controller/metal/rendering.rb')
-rw-r--r-- | actionpack/lib/action_controller/metal/rendering.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal/rendering.rb b/actionpack/lib/action_controller/metal/rendering.rb new file mode 100644 index 0000000000..20eb524e50 --- /dev/null +++ b/actionpack/lib/action_controller/metal/rendering.rb @@ -0,0 +1,57 @@ +module ActionController + module Rendering + extend ActiveSupport::Concern + + included do + include AbstractController::Rendering + include AbstractController::LocalizedCache + end + + def process_action(*) + self.formats = request.formats.map {|x| x.to_sym} + super + end + + def render(options) + super + self.content_type ||= options[:_template].mime_type.to_s + response_body + end + + def render_to_body(options) + _process_options(options) + + if options.key?(:partial) + options[:partial] = action_name if options[:partial] == true + options[:_details] = {:formats => formats} + end + + super + end + + private + def _prefix + controller_path + end + + def _determine_template(options) + if (options.keys & [:partial, :file, :template, :text, :inline]).empty? + options[:_template_name] ||= options[:action] + options[:_prefix] = _prefix + end + + super + end + + def format_for_text + formats.first + end + + def _process_options(options) + status, content_type, location = options.values_at(:status, :content_type, :location) + self.status = status if status + self.content_type = content_type if content_type + self.headers["Location"] = url_for(location) if location + end + end +end |