- when Message::Attachment
- [[[:mime_color, "#{prefix}+ MIME attachment #{chunk.content_type}#{chunk.desc ? ' (' + chunk.desc + ')': ''}"]]]
- when Message::Text
- t = chunk.lines
- if t.last =~ /^\s*$/ && t.length > 1
- t.pop while t[-2] =~ /^\s*$/ # pop until only one file empty line
- end
- t.map { |line| [[:none, "#{prefix}#{line}"]] }
- when Message::Quote
- return [[[:quote_color, "#{prefix}#{chunk.lines.first}"]]] if chunk.lines.length == 1
- case state
- when :closed
- [[[:quote_patina_color, "#{prefix}+ (#{chunk.lines.length} quoted lines)"]]]
- when :open
- [[[:quote_patina_color, "#{prefix}- (#{chunk.lines.length} quoted lines)"]]] + chunk.lines.map { |line| [[:quote_color, "#{prefix}#{line}"]] }
- end
- when Message::Signature
- return [[[:sig_patina_color, "#{prefix}#{chunk.lines.first}"]]] if chunk.lines.length == 1
- case state
- when :closed
- [[[:sig_patina_color, "#{prefix}+ (#{chunk.lines.length}-line signature)"]]]
- when :open
- [[[:sig_patina_color, "#{prefix}- (#{chunk.lines.length}-line signature)"]]] + chunk.lines.map { |line| [[:sig_color, "#{prefix}#{line}"]] }
- end