# File lib/mime/types.rb, line 328
      def from_array(*args) #:yields MIME::Type.new:
        # Dereferences the array one level, if necessary.
        args = args[0] if args[0].kind_of?(Array)

        if args.size.between?(1, 8)
          m = MIME::Type.new(args[0]) do |t|
            t.extensions  = args[1] if args.size > 1
            t.encoding    = args[2] if args.size > 2
            t.system      = args[3] if args.size > 3
            t.obsolete    = args[4] if args.size > 4
            t.docs        = args[5] if args.size > 5
            t.url         = args[6] if args.size > 6
            t.registered  = args[7] if args.size > 7
          end
          yield m if block_given?
        else
          raise ArgumentError, "Array provided must contain between one and eight elements."
        end
        m
      end