Module: Net::IMAP::StringPrep::NamePrep
- Defined in:
- lib/net/imap/stringprep/nameprep.rb
Overview
Defined in RFC3491, the nameprep
profile of “Stringprep” is:
used by the IDNA protocol for preparing domain names; it is not designed for any other purpose. It is explicitly not designed for processing arbitrary free text and SHOULD NOT be used for that purpose.
…
This profile specifies prohibiting using the following tables…:
C.1.2 (Non-ASCII space characters)
C.2.2 (Non-ASCII control characters)
C.3 (Private use characters)
C.4 (Non-character code points)
C.5 (Surrogate codes)
C.6 (Inappropriate for plain text)
C.7 (Inappropriate for canonical representation)
C.8 (Change display properties are deprecated)
C.9 (Tagging characters)
IMPORTANT NOTE: This profile MUST be used with the IDNA protocol. The IDNA protocol has additional prohibitions that are checked outside of this profile.
Constant Summary collapse
- STRINGPREP_PROFILE =
From RFC3491 §10
"nameprep"
- UNASSIGNED_TABLE =
From RFC3491 §2
"A.1"
- MAPPING_TABLES =
From RFC3491 §3
%w[B.1 B.2].freeze
- NORMALIZATION =
From RFC3491 §4
:nfkc
- PROHIBITED_TABLES =
From RFC3491 §5
%w[C.1.2 C.2.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9].freeze
- CHECK_BIDI =
From RFC3491 §6
true
Class Method Summary collapse
Class Method Details
.nameprep(string, **opts) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/net/imap/stringprep/nameprep.rb', line 54 def nameprep(string, **opts) StringPrep.stringprep( string, unassigned: UNASSIGNED_TABLE, maps: MAPPING_TABLES, prohibited: PROHIBITED_TABLES, normalization: NORMALIZATION, bidi: CHECK_BIDI, profile: STRINGPREP_PROFILE, **opts, ) end |