Sha256: 6026851cb9670e00cd93c386aaf777b305a5dc9bf97c89e68a4a7d3414ec4fc3

Contents?: true

Size: 1.12 KB

Versions: 6

Compression:

Stored size: 1.12 KB

Contents

class EmailHeaderMatcher

  EMAIL_HEADERS_WITH_DATE_MARKERS = [
    # Dutch
    ["Sendt"],
    # English
    ["Sent"],
    # French
    ["Date"],
    # German
    ["Gesendet"],
    # Portuguese
    ["Enviada em"],
    # Spanish
    ["Enviado"],
    # Spanish (Mexican)
    ["Fecha"],
  ]

  EMAIL_HEADERS_WITH_DATE_REGEXES = EMAIL_HEADERS_WITH_DATE_MARKERS.map do |header|
    /^[[:space:]\*]*(?:#{header.join("|")})[[:space:]\*]*:.*\d+/
  end

  EMAIL_HEADERS_WITH_TEXT_MARKERS = [
    # Dutch
    ["Fra", "Til", "Emne"],
    # English
    ["From", "To", "Cc", "Reply-To", "Subject"],
    # French
    ["De", "À", "Répondre à", "Objet"],
    # German
    ["Von", "An", "Betreff"],
    # Portuguese
    ["De", "Para", "Assunto"],
    # Spanish
    ["De", "Para", "Asunto"],
  ]

  EMAIL_HEADERS_WITH_TEXT_REGEXES = EMAIL_HEADERS_WITH_TEXT_MARKERS.map do |header|
    /^[[:space:]\*]*(?:#{header.join("|")})[[:space:]\*]*:.*[[:word:]]+/
  end

  EMAIL_HEADER_REGEXES = [
    EMAIL_HEADERS_WITH_DATE_REGEXES,
    EMAIL_HEADERS_WITH_TEXT_REGEXES,
  ].flatten

  def self.match?(line)
    EMAIL_HEADER_REGEXES.any? { |r| line =~ r }
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
email_reply_trimmer-0.1.4 lib/email_reply_trimmer/email_header_matcher.rb
email_reply_trimmer-0.1.3 lib/email_reply_trimmer/email_header_matcher.rb
email_reply_trimmer-0.1.2 lib/email_reply_trimmer/email_header_matcher.rb
email_reply_trimmer-0.1.1 lib/email_reply_trimmer/email_header_matcher.rb
email_reply_trimmer-0.1.0 lib/email_reply_trimmer/email_header_matcher.rb
email_reply_trimmer-0.0.8 lib/email_reply_trimmer/email_header_matcher.rb