metanorma-ietf 3.6.5 → 3.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb5758828f2f98a205b8195c990f58e1bf21bd90f8031df7d71a3757588952cc
4
- data.tar.gz: f8dec2d352999ed8a0524c61a1850385987a03c7addd5648d1ff8886e4aae4c9
3
+ metadata.gz: edd5d53757c7142ccf379c7ffb83ecc79874c544593de69a9b1421a00e90cc3f
4
+ data.tar.gz: ce343131a888ca5c1b617abfea081e2bee46c2f6c2162bd99331e0ce05add13e
5
5
  SHA512:
6
- metadata.gz: ef4ca63eaaee7f005f29a8e318ed527a71fca533e6f8ede4da6ff4e1bb66331ded6bc90640ea133e061093ef7440f915753173563f9d7e606df85d7d6c37c1a6
7
- data.tar.gz: 59e80f4b00c89ceb6b70364abea4e0b26d1f40a59bf0d222f283667da93674ce6bbd8f6b127e0e9b0852656809464ac2cd9b53065438a677f5045fb291ac6e57
6
+ metadata.gz: 3440d8db12dda0936d60ded38bbe47c72fb76ffbbc5aac8ee914b0bb03f3808f93078bba4aeb69edf4133d7b4d6e2561419b9b1e8eaedeb2ce803f0817db1c73
7
+ data.tar.gz: 74564e708027fd31b303cf215d6a5a98c25e4e8ed40bf58e207805d9a7a49ac6a882f483fbae3db4fdc92c973c5db22deb133b3ecfb0380d471b9d32954d1485
@@ -3,3 +3,5 @@ no_terms_boilerplate: ""
3
3
  internal_terms_boilerplate: ""
4
4
  external_terms_boilerplate: ""
5
5
  internal_external_terms_boilerplate: ""
6
+ punct:
7
+ biblio-terminator: ""
@@ -13,7 +13,7 @@ module Metanorma
13
13
  def boilerplate_isodoc(xmldoc)
14
14
  x = xmldoc.dup
15
15
  x.root.add_namespace(nil, xml_namespace)
16
- #xml = Nokogiri::XML(x.to_xml)
16
+ # xml = Nokogiri::XML(x.to_xml)
17
17
  @isodoc ||= isodoc(@lang, @script, @locale)
18
18
  # initialise @isodoc.xrefs, for @isodoc.xrefs.info
19
19
  @isodoc
@@ -41,8 +41,7 @@ module Metanorma
41
41
  c["to"] = id
42
42
  r.replace("<bookmark id='#{id}'/>")
43
43
  else
44
- @log.add("Crossrefences", r,
45
- "No matching annotation for cref:[#{r.text}]", severity: 1)
44
+ @log.add("IETF_1", r, params: [r.text])
46
45
  end
47
46
  end
48
47
  end
@@ -103,7 +102,6 @@ module Metanorma
103
102
  def section_names_refs_cleanup(xml); end
104
103
 
105
104
  def note_cleanup(xmldoc); end
106
-
107
105
  end
108
106
  end
109
107
  end
@@ -178,3 +178,5 @@ module Metanorma
178
178
  end
179
179
  end
180
180
  end
181
+
182
+ require_relative "./log"
@@ -0,0 +1,26 @@
1
+ module Metanorma
2
+ module Ietf
3
+ class Converter
4
+ IETF_LOG_MESSAGES = {
5
+ # rubocop:disable Naming/VariableNumber
6
+ "IETF_1": { category: "Crossrefences",
7
+ error: "No matching annotation for cref:[%s]",
8
+ severity: 1 },
9
+ "IETF_2": { category: "Document Attributes",
10
+ error: "Editorial stream must have Informational status",
11
+ severity: 2 },
12
+ "IETF_3": { category: "Images",
13
+ error: "image %s is not SVG!",
14
+ severity: 1 },
15
+ "IETF_4": { category: "Document Attributes",
16
+ error: "IETF: unrecognised working group %s",
17
+ severity: 1 },
18
+ }.freeze
19
+ # rubocop:enable Naming/VariableNumber
20
+
21
+ def log_messages
22
+ super.merge(IETF_LOG_MESSAGES)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -19,15 +19,13 @@ module Metanorma
19
19
  stream = doc.at("//bibdata/series[@type = 'stream']/title")&.text
20
20
  status = doc.at("//bibdata/status/stage")&.text
21
21
  stream == "editorial" && status != "informational" and
22
- @log.add("Document Attributes", nil,
23
- "Editorial stream must have Informational status")
22
+ @log.add("IETF_2", nil)
24
23
  end
25
24
 
26
25
  def image_validate(doc)
27
26
  doc.xpath("//image").each do |i|
28
27
  i["mimetype"] == "image/svg+xml" and next
29
- @log.add("Images", i, "image #{i['src'][0, 40]} is not SVG!",
30
- severity: 1)
28
+ @log.add("IETF_3", i, params: [i["src"][0, 40]])
31
29
  end
32
30
  end
33
31
 
@@ -37,9 +35,7 @@ module Metanorma
37
35
  "organization/subdivision[@type = 'Workgroup']/name").each do |wg|
38
36
  wg_norm = wg.text.sub(/ (Working|Research) Group$/, "")
39
37
  @workgroups.include?(wg_norm) and next
40
- @log.add("Document Attributes", nil,
41
- "IETF: unrecognised working group #{wg.text}",
42
- severity: 1)
38
+ @log.add("IETF_4", nil, params: [wg.text])
43
39
  end
44
40
  end
45
41
 
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Ietf
3
- VERSION = "3.6.5".freeze
3
+ VERSION = "3.6.6".freeze
4
4
  end
5
5
  end
@@ -20,7 +20,7 @@ template:
20
20
  # skip standardidentifier, it is inserted in front of formattedref within metanorma
21
21
  # date is cleaned up into RFC XML formatting afterwards
22
22
  # ref-included is cleaned up as referencegroup/reference in RFC XML afterwards
23
- standard: "{% if stream %}<stream>{{stream}}</stream>{% endif %} <front> <title>{{ title }}</title> {{ creatornames }} <date_cleanme='true'>{{date}}</date> {% for k in keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{abstract}}</abstract> </front> {{ series }} {%for d in doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{authoritative_identifier | join: ', '}}</refcontent> {% endif %} {% for i in included %}<ref-included target='{{ i.uris[0].content }}'> {% if i.stream %}<stream>{{i.stream}}</stream>{% endif %} <front> <title>{% if i.title %}{{ i.title}}{%else%}[TITLE]{%endif%}</title> {% if i.creatornames %}{{ i.creatornames }}{%else%}<author></author>{%endif%} <date_cleanme='true'>{{i.date}}</date> {% for k in i.keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{i.abstract}}</abstract> </front> {{ series }} {%for d in i.doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in i.authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{i.authoritative_identifier | join: ', '}}</refcontent> {% endif %}</ref-included>{% endfor %}"
23
+ standard: "{% if stream %}<stream>{{stream}}</stream>{% endif %} <front> <title>{{ title }}</title> {{ creatornames }} <date_cleanme='true'>{{date}}</date> {% for k in keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{abstract}}</abstract> </front> {%for d in doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{authoritative_identifier | join: ', '}}</refcontent> {% endif %} {% for i in included %}<ref-included target='{{ i.uris[0].content }}'> {% if i.stream %}<stream>{{i.stream}}</stream>{% endif %} <front> <title>{% if i.title %}{{ i.title}}{%else%}[TITLE]{%endif%}</title> {% if i.creatornames %}{{ i.creatornames }}{%else%}<author></author>{%endif%} <date_cleanme='true'>{{i.date}}</date> {% for k in i.keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{i.abstract}}</abstract> </front> {{ series }} {%for d in i.doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in i.authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{i.authoritative_identifier | join: ', '}}</refcontent> {% endif %}</ref-included>{% endfor %}"
24
24
  website: standard
25
25
  book: standard
26
26
  booklet: standard
@@ -2,7 +2,7 @@ module Relaton
2
2
  module Render
3
3
  module Ietf
4
4
  class Fields < ::Relaton::Render::Fields
5
- def nameformat(names)
5
+ def nameformat(names, hash)
6
6
  names.nil? and return names
7
7
  parts = %i(surname initials given middle nonpersonal
8
8
  nonpersonalabbrev completename)
@@ -12,7 +12,7 @@ module Relaton
12
12
  m[i] << n[i]
13
13
  end
14
14
  end
15
- @r.nametemplate.render(names_out)
15
+ @r.nametemplate.render(names_out, hash)
16
16
  end
17
17
 
18
18
  # do not format months
@@ -37,13 +37,14 @@ Gem::Specification.new do |spec|
37
37
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
38
38
 
39
39
  spec.add_dependency "metanorma-ietf-data"
40
- spec.add_dependency "metanorma-standoc", "~> 3.1.0"
40
+ spec.add_dependency "metanorma-standoc", "~> 3.2.0"
41
41
  spec.add_dependency "relaton-render"
42
42
 
43
43
  spec.add_development_dependency "debug"
44
44
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
45
45
  spec.add_development_dependency "guard", "~> 2.14"
46
46
  spec.add_development_dependency "guard-rspec", "~> 4.7"
47
+ spec.add_development_dependency "openssl"
47
48
  spec.add_development_dependency "rake", "~> 13.0"
48
49
  spec.add_development_dependency "rspec", "~> 3.6"
49
50
  spec.add_development_dependency "rubocop", "~> 1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ietf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.5
4
+ version: 3.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-10-13 00:00:00.000000000 Z
11
+ date: 2025-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-ietf-data
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.1.0
33
+ version: 3.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.1.0
40
+ version: 3.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: relaton-render
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '4.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: openssl
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rake
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -280,6 +294,7 @@ files:
280
294
  - lib/metanorma/ietf/front.rb
281
295
  - lib/metanorma/ietf/ietf.rng
282
296
  - lib/metanorma/ietf/isodoc.rng
297
+ - lib/metanorma/ietf/log.rb
283
298
  - lib/metanorma/ietf/macros.rb
284
299
  - lib/metanorma/ietf/processor.rb
285
300
  - lib/metanorma/ietf/relaton-ietf.rng