275: def from_array(*args)
276:
277: args = args[0] if args[0].kind_of?(Array)
278:
279: if args.size.between?(1, 8)
280: m = MIME::Type.new(args[0]) do |t|
281: t.extensions = args[1] if args.size > 1
282: t.encoding = args[2] if args.size > 2
283: t.system = args[3] if args.size > 3
284: t.obsolete = args[4] if args.size > 4
285: t.docs = args[5] if args.size > 5
286: t.url = args[6] if args.size > 6
287: t.registered = args[7] if args.size > 7
288: end
289: yield m if block_given?
290: else
291: raise ArgumentError, "Array provided must contain between one and eight elements."
292: end
293: m
294: end