# 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