lib/webrat/core/mime.rb in davidtrogers-webrat-0.4.4.2 vs lib/webrat/core/mime.rb in davidtrogers-webrat-0.7.0

- old
+ new

@@ -1,29 +1,18 @@ module Webrat #:nodoc: module MIME #:nodoc: + MIME_TYPES = Rack::Mime::MIME_TYPES.dup.merge( + ".multipart_form" => "multipart/form-data", + ".url_encoded_form" => "application/x-www-form-urlencoded" + ).freeze - def self.mime_type(string_or_symbol) #:nodoc: - if string_or_symbol.is_a?(String) - string_or_symbol - else - case string_or_symbol - when :text then "text/plain" - when :html then "text/html" - when :js then "text/javascript" - when :css then "text/css" - when :ics then "text/calendar" - when :csv then "text/csv" - when :xml then "application/xml" - when :rss then "application/rss+xml" - when :atom then "application/atom+xml" - when :yaml then "application/x-yaml" - when :multipart_form then "multipart/form-data" - when :url_encoded_form then "application/x-www-form-urlencoded" - when :json then "application/json" - else - raise ArgumentError.new("Invalid Mime type: #{string_or_symbol.inspect}") - end - end + def mime_type(type) + return type if type.nil? || type.to_s.include?("/") + type = ".#{type}" unless type.to_s[0] == ?. + MIME_TYPES.fetch(type) { |type| + raise ArgumentError.new("Invalid Mime type: #{type}") + } end + module_function :mime_type end end