module MList
module Util
module EmailHelpers
def sanitize_header(charset, name, *values)
header_sanitizer(name).call(charset, *values)
end
def header_sanitizer(name)
Util.default_header_sanitizers[name]
end
def normalize_new_lines(text)
text.to_s.gsub(/\r\n?/, "\n")
end
def remove_brackets(string)
string =~ /\A<(.*?)>\Z/ ? $1 : string
end
def remove_regard(string)
stripped = string.strip
stripped =~ /\A.*re:\s+(\[.*\]\s*)?(.*?)\Z/i ? $2 : stripped
end
def text_to_html(text)
lines = normalize_new_lines(text).split("\n")
lines.collect! do |line|
line = escape_once(line)
line = (" " * $1.length) + $2 if line =~ /^(\s+)(.*?)$/
line = %{#{line}} if line =~ /^(>|[|]|[A-Za-z]+>)/
line = line.gsub(/\s\s/, ' ')
line
end
lines.join("
\n")
end
def text_to_quoted(text)
lines = normalize_new_lines(text).split("\n")
lines.collect! do |line|
'> ' + line
end
lines.join("\n")
end
HTML_ESCAPE = { '&' => '&', '>' => '>', '<' => '<', '"' => '"' }
def escape_once(text)
text.gsub(/[\"><]|&(?!([a-zA-Z]+|(#\d+));)/) { |special| HTML_ESCAPE[special] }
end
end
end
end