class EmailReplyParser::Email

Public Instance Methods

except_in_visible_block_quotes() { || ... } click to toggle source
# File lib/extended_email_reply_parser/email_reply_parser/email.rb, line 44
def except_in_visible_block_quotes
  @except_in_visible_block_quotes = true
  yield
  @except_in_visible_block_quotes = false
end
hide_everything_after(expressions) click to toggle source
# File lib/extended_email_reply_parser/email_reply_parser/email.rb, line 3
def hide_everything_after(expressions)
  split_regex = /(#{expressions.join(".*?")}.*?\n)/m
  split_fragments_at split_regex
end
remove_empty_lines_between_block_quote_lines() click to toggle source
# File lib/extended_email_reply_parser/email_reply_parser/email.rb, line 8
def remove_empty_lines_between_block_quote_lines
  @fragments = @fragments.collect do |fragment|
    if fragment.quoted?
      fragment.content = fragment.content.gsub /\n *?\n>/m, "\n>"
    end
    fragment
  end
end
split_fragments_at(regex) click to toggle source
# File lib/extended_email_reply_parser/email_reply_parser/email.rb, line 17
def split_fragments_at(regex)
  @fragments = @fragments.collect do |fragment|
    if fragment.to_s
      first_text, *rest = fragment.to_s.split(regex)

      first_fragment = Fragment.new(false, first_text)
      first_fragment.quoted = fragment.quoted
      first_fragment.hidden = fragment.hidden
      first_fragment.signature = fragment.signature
      first_fragment.content = first_text

      hidden_fragment = Fragment.new(true, rest.join("\n"))
      hidden_fragment.content = rest.join("\n")

      hidden_fragment.quoted = true
      if @except_in_visible_block_quotes
        hidden_fragment.hidden = true unless fragment.quoted? and not fragment.hidden?
      else
        hidden_fragment.hidden = true
      end

      [first_fragment, hidden_fragment]
    end
  end.flatten - [nil]
  @fragments = @fragments.select { |fragment| fragment.to_s && fragment.to_s != "" }
end

Private Instance Methods

quote_header?(line) click to toggle source

Detects if a given line is a header above a quoted area. It is only checked for lines preceding quoted regions.

line - A String line of text from the email.

Returns true if the line is a valid header, or false.

This method overrides the original in order to include the different regex defined in the different ExtendedEmailReplyParser::Parsers.

# File lib/extended_email_reply_parser/email_reply_parser/email.rb, line 62
def quote_header?(line)
  regex = ExtendedEmailReplyParser::Parsers::Base.quote_header_regexes.join("|")
  line.reverse =~ /#{regex}/
end