def add_mime_type(key, transform_method, mimes, new_response_headers = {}, default_quality = 1, &block)
enforce!(key => Symbol, mimes => Array)
content_type = new_response_headers["Content-Type"] || mimes.first
if charset = new_response_headers.delete(:charset)
content_type += "; charset=#{charset}"
end
ResponderMixin::TYPES.update(key =>
{:accepts => mimes,
:transform_method => transform_method,
:content_type => content_type,
:response_headers => new_response_headers,
:default_quality => default_quality,
:response_block => block })
mimes.each do |mime|
ResponderMixin::MIMES.update(mime => key)
end
Merb::RenderMixin.class_eval "def render_\#{key}(thing = nil, opts = {})\nself.content_type = :\#{key}\nrender thing, opts\nend\n", __FILE__, __LINE__
nil
end