# File MIME/types.rb, line 219 def initialize(arg, &block) case arg when MIME::Type __create(arg.content_type) do init_extensions(arg.extensions) init_encoding(arg.encoding) init_system(arg.system) end when Array __create(arg[0]) do init_extensions(arg[1]) init_encoding(arg[2]) init_system(arg[3]) end when Hash cty = arg.key?('type') ? arg['type'] : arg.key?('content-type') ? arg['content-type'] : arg.key?('Content-Type') ? arg['Content-Type'] : arg.key?('content_type') ? arg['content_type'] : nil ext = arg.key?('extensions') ? arg['extensions'] : arg.key?('Extensions') ? arg['Extensions'] : nil [arg['extensions']].flatten enc = arg.key?('encoding') ? arg['encoding'] : arg.key?('content-transfer-encoding') ? arg['content-transfer-encoding'] : arg.key?('Content-Transfer-Encoding') ? arg['Content-Transfer-Encoding'] : arg.key?('content_encoding') ? arg['content_encoding'] : nil osy = arg.key?('system') ? arg['system'] : arg.key?('System') ? arg['System'] : nil __create(cty) do init_extensions(ext) init_encoding(enc) init_system(osy) end when String __create(arg, &block) else raise TypeError, "Received #{arg.class} when expecting " \ "MIME::Type, Array, Hash, or String only." end end