Module | TMail::TextUtils
In: | lib/tmail/utils.rb

Text Utils provides a namespace to define TOKENs, ATOMs, PHRASEs and CONTROL characters that are OK per RFC 2822.

It also provides methods you can call to determine if a string is safe

### Methods

atom_safe? join_domain quote_atom quote_phrase quote_token timezone_string_to_unixtime token_safe? unquote

### Constants

CONTROL_CHAR | = | /[#{control}]/n
ATOM_UNSAFE | = | /[#{Regexp.quote aspecial}#{control}#{lwsp}]/n
PHRASE_UNSAFE | = | /[#{Regexp.quote aspecial}#{control}]/n
TOKEN_UNSAFE | = | /[#{Regexp.quote tspecial}#{control}#{lwsp}]/n

### Public Instance methods

atom_safe?( str )

Returns true if the string supplied is free from characters not allowed as an ATOM

[Source]

    # File lib/tmail/utils.rb, line 123
        def atom_safe?( str )
          not ATOM_UNSAFE === str
        end

join_domain( arr )

Provides a method to join a domain name by it‘s parts and also makes it ATOM safe by quoting it as needed

[Source]

    # File lib/tmail/utils.rb, line 169
        def join_domain( arr )
          arr.map {|i|
              if /\A\[.*\]\z/ === i
                i
              else
                quote_atom(i)
              end
          }.join('.')
        end

quote_atom( str )

If the string supplied has ATOM unsafe characters in it, will return the string quoted in double quotes, otherwise returns the string unmodified

[Source]

    # File lib/tmail/utils.rb, line 129
        def quote_atom( str )
          (ATOM_UNSAFE === str) ? dquote(str) : str
        end

quote_phrase( str )

If the string supplied has PHRASE unsafe characters in it, will return the string quoted in double quotes, otherwise returns the string unmodified

[Source]

    # File lib/tmail/utils.rb, line 135
        def quote_phrase( str )
          (PHRASE_UNSAFE === str) ? dquote(str) : str
        end

quote_token( str )

If the string supplied has TOKEN unsafe characters in it, will return the string quoted in double quotes, otherwise returns the string unmodified

[Source]

    # File lib/tmail/utils.rb, line 146
        def quote_token( str )
          (TOKEN_UNSAFE === str) ? dquote(str) : str
        end

timezone_string_to_unixtime( str )

Takes a time zone string from an EMail and converts it to Unix Time (seconds)

[Source]

    # File lib/tmail/utils.rb, line 228
        def timezone_string_to_unixtime( str )
          if m = /([\+\-])(\d\d?)(\d\d)/.match(str)
            sec = (m[2].to_i * 60 + m[3].to_i) * 60
            m[1] == '-' ? -sec : sec
          else
            min = ZONESTR_TABLE[str.downcase] or
                    raise SyntaxError, "wrong timezone format '#{str}'"
            min * 60
          end
        end

token_safe?( str )

Returns true if the string supplied is free from characters not allowed as a TOKEN

[Source]

    # File lib/tmail/utils.rb, line 140
        def token_safe?( str )
          not TOKEN_UNSAFE === str
        end

unquote( str )

Unwraps supplied string from inside double quotes Returns unquoted string

[Source]

    # File lib/tmail/utils.rb, line 163
        def unquote( str )
          str =~ /^"(.*?)"$/m ? $1 : str
        end

[Validate]