# 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