module ActionController module Renderer # def self.included(klass) # klass.extend ClassMethods # end # # module ClassMethods # def prefix # @prefix ||= name.underscore # end # end def initialize(*) self.formats = [:html] super end def render(action, options = {}) # TODO: Move this into #render_to_string if action.is_a?(Hash) options, action = action, nil else options.merge! :action => action end _process_options(options) self.response_body = render_to_string(options) end def render_to_string(options) unless options.is_a?(Hash) options = {:action => options} end if options.key?(:text) options[:_template] = ActionView::TextTemplate.new(_text(options)) template = nil elsif options.key?(:template) options[:_template_name] = options[:template] elsif options.key?(:action) options[:_template_name] = options[:action].to_s options[:_prefix] = _prefix end super(options) end private def _prefix controller_path end def _text(options) text = options[:text] case text when nil then " " else text.to_s end end def _process_options(options) if status = options[:status] response.status = status.to_i end end end end