# encoding: utf-8
module Mail
# Field List class provides an enhanced array that keeps a list of
# email fields in order. And allows you to insert new fields without
# having to worry about the order they will appear in.
class FieldList < Array
include Enumerable
def <<( new_field )
current_entry = self.rindex(new_field)
if current_entry
self.insert((current_entry + 1), new_field)
else
insert_idx = -1
self.each_with_index do |item, idx|
case item <=> new_field
when -1
next
when 0
next
when 1
insert_idx = idx
break
end
end
insert(insert_idx, new_field)
end
end
end
end