class Mail::Encodings::QuotedPrintable
Constants
- NAME
- PRIORITY
Public Class Methods
can_encode?(str)
click to toggle source
# File lib/mail/encodings/quoted_printable.rb, line 10 def self.can_encode?(str) EightBit.can_encode? str end
compatible_input?(str)
click to toggle source
QP inserts newlines automatically and cannot violate the SMTP spec.
# File lib/mail/encodings/quoted_printable.rb, line 34 def self.compatible_input?(str) true end
cost(str)
click to toggle source
# File lib/mail/encodings/quoted_printable.rb, line 24 def self.cost(str) # These bytes probably do not need encoding c = str.count("\x9\xA\xD\x20-\x3C\x3E-\x7E") # Everything else turns into =XX where XX is a # two digit hex number (taking 3 bytes) total = (str.bytesize - c)*3 + c total.to_f/str.bytesize end
decode(str)
click to toggle source
Decode the string from Quoted-Printable. Cope with hard line breaks that were incorrectly encoded as hex instead of literal CRLF.
# File lib/mail/encodings/quoted_printable.rb, line 16 def self.decode(str) ::Mail::Utilities.to_lf str.gsub(/(?:=0D=0A|=0D|=0A)\r\n/, "\r\n").unpack("M*").first end
encode(str)
click to toggle source
# File lib/mail/encodings/quoted_printable.rb, line 20 def self.encode(str) ::Mail::Utilities.to_crlf([::Mail::Utilities.to_lf(str)].pack("M")) end