def display(object, thing = nil, opts = {})
template_opt = thing.is_a?(Hash) ? thing.delete(:template) : opts.delete(:template)
case thing
when String
template_opt, thing = thing, nil
when Hash
opts, thing = thing, nil
end
render(thing || action_name.to_sym, opts.merge(:template => template_opt))
rescue TemplateNotFound => e
opts = self.class.default_render_options.merge(opts)
transform = Merb.mime_transform_method(content_type)
if !transform
raise NotAcceptable, "#{e.message} and there was no transform method registered for #{content_type.inspect}"
elsif !object.respond_to?(transform)
raise NotAcceptable, "#{e.message} and your object does not respond to ##{transform}"
end
layout_opt = opts.delete(:layout)
_handle_options!(opts)
throw_content(:for_layout, opts.empty? ? object.send(transform) : object.send(transform, opts))
meth, _ = _template_for(layout_opt, layout_opt.to_s.index(".") ? nil : content_type, "layout") if layout_opt
meth ? send(meth) : catch_content(:for_layout)
end