def from_array(*args)
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