global
def boilerplate(key)
def boilerplate(key) ret = '' case key.downcase when /\Abcp14(info)?(\+)?(-tagged)?\z/i if $1 ret << <<RFC8174ise Although this document is not an IETF Standards Track publication, it adopts the conventions for normative language to provide clarity of instructions to the implementer. RFC8174ise end ret << <<RFC8174 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 {{!RFC2119}} {{!RFC8174}} when, and only when, they appear in all capitals, as shown here. RFC8174 if $2 ret << <<PLUS These words may also appear in this document in lower case as plain English words, absent their normative meanings. PLUS end if $3 ($options.v3_used ||= []) << "** need --v3 to tag bcp14" ret << <<TAGGED *[MUST]: <bcp14> *[MUST NOT]: <bcp14> *[REQUIRED]: <bcp14> *[SHALL]: <bcp14> *[SHALL NOT]: <bcp14> *[SHOULD]: <bcp14> *[SHOULD NOT]: <bcp14> *[RECOMMENDED]: <bcp14> *[NOT RECOMMENDED]: <bcp14> *[MAY]: <bcp14> *[OPTIONAL]: <bcp14> TAGGED end ret when /\Arfc\s*7942(info)?\z/i if $1 ret << <<INFO (Boilerplate as per {{Section 2.1 of RFC7942}}:) INFO end ret << <<RFC7942 This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in {{?RFC7942}}. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist. According to {{?RFC7942}}, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit". RFC7942 else warn "** Unknown boilerplate key: #{key}" "{::boilerplate #{key}}" end end