metanorma-ieee 1.3.3 → 1.3.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.
@@ -114,6 +114,20 @@ module IsoDoc
114
114
  id = UUIDTools::UUID.random_create.to_s
115
115
  "<fn reference='#{id}'><p>#{note.content}</p></fn>"
116
116
  end
117
+
118
+ def omit_docid_prefix(prefix)
119
+ prefix == "DOI" and return true
120
+ super
121
+ end
122
+
123
+ def bracket_if_num(num)
124
+ return nil if num.nil?
125
+
126
+ num = num.text.sub(/^\[/, "").sub(/\]$/, "")
127
+ return "[#{num}]" if /^B?\d+$/.match?(num)
128
+
129
+ num
130
+ end
117
131
  end
118
132
  end
119
133
  end
@@ -2,6 +2,7 @@ module IsoDoc
2
2
  module Ieee
3
3
  class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
4
4
  def multidef(elem)
5
+ # require "debug"; binding.b
5
6
  number_multidef(elem)
6
7
  collapse_multidef(elem)
7
8
  end
@@ -10,8 +11,7 @@ module IsoDoc
10
11
  c = IsoDoc::XrefGen::Counter.new("@")
11
12
  elem.xpath(ns("./definition")).each do |d|
12
13
  c.increment(d)
13
- d.elements.first.children.first.previous =
14
- "<strong>(#{c.print})</strong>&#xa0;"
14
+ d.elements.first.add_first_child "<strong>(#{c.print})</strong>&#xa0;"
15
15
  end
16
16
  end
17
17
 
@@ -36,9 +36,11 @@ module IsoDoc
36
36
  docxml.xpath(ns(".//definition/verbal-definition")).each do |v|
37
37
  v.elements.all? { |e| %w(termsource p).include?(e.name) } or next
38
38
  p = v.xpath(ns("./p"))
39
+ s = v.xpath(ns('./termsource'))
40
+ s.empty? or
41
+ s = " (#{s.map { |x| to_xml(x) }.join("\n")})"
39
42
  v.children =
40
- "<p>#{p.map(&:children).map { |x| to_xml(x) }.join("\n")}</p>" \
41
- "#{v.xpath(ns('./termsource')).to_xml}"
43
+ "<p>#{p.map(&:children).map { |x| to_xml(x) }.join("\n")}#{s}</p>"
42
44
  end
43
45
  super
44
46
  end
@@ -214,6 +216,13 @@ module IsoDoc
214
216
  end
215
217
  end
216
218
 
219
+ # domain is rendered in designation_field instead
220
+ def termdomain(elem)
221
+ d = elem.at(ns(".//domain")) or return
222
+ d["hidden"] = "true"
223
+ end
224
+
225
+ # TODO wrap domain not in <domain>, but <span class="domain"> or equivalent
217
226
  def designation_field(desgn, name)
218
227
  if desgn.name == "preferred"
219
228
  f = desgn.xpath(ns("./../domain | ./../subject")).map(&:remove)
@@ -236,8 +245,13 @@ module IsoDoc
236
245
  end
237
246
 
238
247
  def termnote1(elem)
248
+ lbl = termnote_label(elem)
249
+ prefix_name(elem, { label: block_delim }, lower2cap(lbl), "name")
250
+ end
251
+
252
+ def termnote_label(elem)
239
253
  lbl = l10n(@xrefs.anchor(elem["id"], :label)&.strip || "???")
240
- prefix_name(elem, block_delim, lower2cap(lbl), "name")
254
+ l10n lbl
241
255
  end
242
256
 
243
257
  def term(docxml); end
@@ -18,8 +18,9 @@ module IsoDoc
18
18
  ret = resolve_eref_connectives(eref_locality_stacks(refs, target,
19
19
  node))
20
20
  node["droploc"] = droploc
21
+ p = prefix_clause(target, refs.first.at(ns("./locality")))
21
22
  eref_localities1({ target: target, number: "pl",
22
- type: prefix_clause(target, refs.first.at(ns("./locality"))),
23
+ type: p,
23
24
  from: l10n(ret[1..-1].join), node: node,
24
25
  lang: @lang })
25
26
  end
@@ -57,12 +58,18 @@ module IsoDoc
57
58
  @xrefs.anchor(node["target"], :type) == "clause" &&
58
59
  @xrefs.anchor(node["target"], :level) > 1 &&
59
60
  !start_of_sentence(node) and
60
- linkend = linkend.sub(/^Clause /, "")
61
+ linkend = strip_initial_clause(linkend)
61
62
  container = @xrefs.anchor(node["target"], :container, false)
62
63
  linkend = prefix_container(container, linkend, node, node["target"])
63
64
  capitalise_xref(node, linkend, anchor_value(node["target"]))
64
65
  end
65
66
 
67
+ def strip_initial_clause(linkend)
68
+ x = Nokogiri::XML("<a>#{linkend}</a>")
69
+ x.at(".//span[@class = 'fmt-element-name']")&.remove
70
+ to_xml(x.elements.first.children).strip
71
+ end
72
+
66
73
  def eref_locality_populate(type, node, number)
67
74
  type == "page" and return ""
68
75
  super
@@ -72,38 +79,41 @@ module IsoDoc
72
79
  "&#x2014;"
73
80
  end
74
81
 
75
- def note1(elem)
76
- elem.parent.name == "bibitem" || elem["notag"] == "true" and return
77
- n = @xrefs.get[elem["id"]]
78
- lbl = if n.nil? || n[:label].nil? || n[:label].empty? then @i18n.note
79
- else l10n("#{@i18n.note} #{n[:label]}")
80
- end
81
- prefix_name(elem, block_delim, lbl, "name")
82
+ def note_delim(_elem)
83
+ "&#x2014;"
82
84
  end
83
85
 
84
86
  def annex1(elem)
85
87
  if @doctype == "whitepaper"
86
88
  annex1_whitepaper(elem)
87
89
  else
88
- annex1_default(elem)
90
+ super
89
91
  end
90
92
  end
91
93
 
92
94
  def annex1_whitepaper(elem)
93
95
  lbl = @xrefs.anchor(elem["id"], :label)
94
96
  if t = elem.at(ns("./title"))
95
- t.name = "variant-title"
96
- t["type"] = "sub"
97
+ d = t.dup
98
+ # TODO fmt-variant-title
99
+ d.name = "variant-title"
100
+ d["type"] = "sub"
101
+ t.next = d
97
102
  end
98
- elem.children.first.previous = "<title>#{lbl}</title>"
103
+ elem.add_first_child "<fmt-title>#{lbl}</fmt-title>"
99
104
  end
100
105
 
106
+ def annex_delim(_elem)
107
+ "<br/>"
108
+ end
109
+
110
+ # KILL
101
111
  def annex1_default(elem)
102
112
  lbl = @xrefs.anchor(elem["id"], :label)
103
113
  if t = elem.at(ns("./title"))
104
114
  t.children = "<strong>#{to_xml(t.children)}</strong>"
105
115
  end
106
- prefix_name(elem, "<br/>", lbl, "title")
116
+ prefix_name(elem, { caption: "<br/>" }, lbl, "title")
107
117
  end
108
118
 
109
119
  def amend1(elem)
@@ -216,6 +226,13 @@ module IsoDoc
216
226
  dest.children.first.next = source
217
227
  end
218
228
 
229
+ def example1(elem)
230
+ super
231
+ n = elem.at(ns("./fmt-name")) or return
232
+ n << l10n("<span class='fmt-caption-delim'>:</span>")
233
+ n.children.wrap("<em></em>")
234
+ end
235
+
219
236
  include Init
220
237
  end
221
238
  end
@@ -153,9 +153,9 @@ module IsoDoc
153
153
  def feedback_style1(div, idx)
154
154
  div.xpath(".//p").each_with_index do |p, j|
155
155
  p["class"] = idx == 4 ? "IEEEStdsCRTextItal" : "IEEEStdsCRTextReg"
156
- j.zero? && idx.zero? and
157
- p.children.first.previous =
158
- '<a style="mso-footnote-id:ftn0" href="#_ftnref0" name="_ftn0" title=""/>'
156
+ j.zero? && idx.zero? and p.add_first_child <<~XML
157
+ <a style="mso-footnote-id:ftn0" href="#_ftnref0" name="_ftn0" title=""/>
158
+ XML
159
159
  end
160
160
  end
161
161
 
@@ -203,9 +203,9 @@ module IsoDoc
203
203
  end
204
204
 
205
205
  def abstract_header(dest)
206
- dest.elements.first.children.first.previous =
207
- "<span class='IEEEStdsAbstractHeader'><span lang='EN-US'>" \
208
- "Abstract:</span></span> "
206
+ dest.elements.first.add_first_child <<~XML
207
+ <span class='IEEEStdsAbstractHeader'><span lang='EN-US'>Abstract:</span></span>
208
+ XML
209
209
  end
210
210
 
211
211
  def introduction_cleanup(docxml)
@@ -78,28 +78,11 @@ module IsoDoc
78
78
  end
79
79
 
80
80
  def caption_cleanup(docxml)
81
- table_caption(docxml)
82
- figure_caption(docxml)
83
81
  example_caption(docxml)
84
82
  end
85
83
 
86
- def table_caption(docxml)
87
- docxml.xpath("//p[@class = 'TableTitle']").each do |s|
88
- s.children = to_xml(s.children)
89
- .sub(/^#{@i18n.table}(\s+[A-Z0-9.]+)?/, "")
90
- end
91
- end
92
-
93
- def figure_caption(docxml)
94
- docxml.xpath("//p[@class = 'FigureTitle']").each do |s|
95
- s.children = to_xml(s.children)
96
- .sub(/^#{@i18n.figure}(\s+[A-Z0-9.]+)?/, "")
97
- end
98
- end
99
-
100
84
  def example_caption(docxml)
101
85
  docxml.xpath("//p[@class = 'example-title']").each do |s|
102
- s.children = "<em>#{to_xml(s.children)}</em>"
103
86
  s["class"] = stylesmap[:MsoNormal]
104
87
  end
105
88
  end
@@ -67,9 +67,9 @@ module IsoDoc
67
67
  def abstract(clause, out)
68
68
  page_break(out)
69
69
  out.div **attr_code(id: clause["id"], class: "abstract") do |s|
70
- clause_name(clause, clause.at(ns("./title")), s,
70
+ clause_name(clause, clause.at(ns("./fmt-title")), s,
71
71
  { class: stylesmap[:AbstractTitle] })
72
- clause.elements.each { |e| parse(e, s) unless e.name == "title" }
72
+ clause.elements.each { |e| parse(e, s) unless e.name == "fmt-title" }
73
73
  end
74
74
  end
75
75
 
@@ -120,8 +120,7 @@ module IsoDoc
120
120
  formula_parse1(node, div)
121
121
  formula_where(node.at(ns("./dl")), div)
122
122
  node.children.each do |n|
123
- next if %w(stem dl name).include? n.name
124
-
123
+ %w(stem dl fmt-name).include? n.name and next
125
124
  parse(n, div)
126
125
  end
127
126
  end
@@ -132,8 +131,7 @@ module IsoDoc
132
131
  end
133
132
 
134
133
  def formula_where(dlist, out)
135
- return unless dlist
136
-
134
+ dlist or return
137
135
  dlist.elements.select { |n| dt_dd? n }.each_slice(2) do |dt, dd|
138
136
  formula_where1(out, dt, dd)
139
137
  end
@@ -158,54 +156,73 @@ module IsoDoc
158
156
  end
159
157
 
160
158
  def annex_name(_annex, name, div)
161
- return if name.nil?
162
-
163
- name&.at(ns("./strong"))&.remove # supplied by CSS list numbering
159
+ name.nil? and return
160
+ name&.at(ns(".//strong"))&.remove # supplied by CSS list numbering
164
161
  div.h1 class: "Annex" do |t|
165
- annex_name1(name, t)
162
+ # annex_name1(name, t)
163
+ children_parse(name, t)
166
164
  clause_parse_subtitle(name, t)
167
165
  end
168
166
  end
169
167
 
170
- def annex_name1(name, out)
171
- name.children.each do |c2|
172
- if c2.name == "span" && c2["class"] == "obligation"
173
- out.span style: "font-weight:normal;" do |s|
174
- c2.children.each { |c3| parse(c3, s) }
175
- end
176
- else parse(c2, out)
177
- end
168
+ def span_parse(node, out)
169
+ if node["class"] == "fmt-obligation"
170
+ node.delete("class")
171
+ node["style"] = "font-weight:normal;"
178
172
  end
173
+ super
179
174
  end
180
175
 
181
176
  def termnote_parse(node, out)
182
- name = node&.at(ns("./name"))&.remove
177
+ name = node.at(ns("./fmt-name"))
178
+ para = node.at(ns("./p"))
183
179
  out.div **note_attrs(node) do |div|
184
180
  div.p do |p|
185
181
  name and termnote_label(p, name)
186
- para_then_remainder(node.first_element_child, node, p, div)
182
+ children_parse(para, p)
187
183
  end
184
+ para.xpath("./following-sibling::*").each { |n| parse(n, div) }
188
185
  end
189
186
  end
190
187
 
191
188
  def termnote_label(para, name)
192
189
  para.span class: "note_label" do |s|
193
190
  name.children.each { |n| parse(n, s) }
194
- s << termnote_delim
195
191
  end
196
192
  end
197
193
 
198
194
  # STYLE
199
195
  def table_of_contents(clause, out)
200
196
  out.div class: "WordSectionContents" do |div|
201
- clause_name(clause, clause.at(ns("./title")), div,
197
+ clause_name(clause, clause.at(ns("./fmt-title")), div,
202
198
  { class: "IEEEStdsLevel1frontmatter" })
203
199
  clause.elements.each do |e|
204
- parse(e, div) unless e.name == "title"
200
+ parse(e, div) unless e.name == "fmt-title"
205
201
  end
206
202
  end
207
203
  end
208
204
 
205
+ # Figure 1— remove each of these
206
+ def figure_name_parse(_node, div, name)
207
+ name.nil? and return
208
+ name.at(".//xmlns:semx[@element = 'autonum']/"\
209
+ "preceding-sibling::*[normalize-space() = '']")&.remove
210
+ name.xpath(ns(".//span[@class = 'fmt-element-name'] | "\
211
+ ".//span[@class = 'fmt-caption-delim'] | "\
212
+ ".//semx[@element = 'autonum']")).each(&:remove)
213
+ super
214
+ end
215
+
216
+ def table_title_parse(node, out)
217
+ name = node.at(ns("./fmt-name")) or return
218
+ name.at(".//xmlns:semx[@element = 'autonum']/"\
219
+ "preceding-sibling::*[normalize-space() = '']")&.remove
220
+ name.xpath(ns(".//span[@class = 'fmt-element-name'] | "\
221
+ ".//span[@class = 'fmt-caption-delim'] | "\
222
+ ".//semx[@element = 'autonum']")).each(&:remove)
223
+ super
224
+ end
225
+
209
226
  include BaseConvert
210
227
  include Init
211
228
  end
@@ -85,10 +85,10 @@ module IsoDoc
85
85
  end
86
86
 
87
87
  def abstract_body(clause, out)
88
- clause_name(clause, clause.at(ns("./title")), out,
88
+ clause_name(clause, clause.at(ns("./fmt-title")), out,
89
89
  { class: stylesmap[:AbstractTitle],
90
90
  style: ABSTRACT_MARGIN })
91
- clause.elements.each { |e| parse(e, out) unless e.name == "title" }
91
+ clause.elements.each { |e| parse(e, out) unless e.name == "fmt-title" }
92
92
  end
93
93
 
94
94
  def clause(node, out)
@@ -98,10 +98,9 @@ module IsoDoc
98
98
 
99
99
  def figure_parse1(node, out)
100
100
  out.div **figure_attrs(node) do |div|
101
- figure_name_parse(node, div, node.at(ns("./name")))
101
+ figure_name_parse(node, div, node.at(ns("./fmt-name")))
102
102
  node.children.each do |n|
103
- figure_key(out) if n.name == "dl"
104
- parse(n, div) unless n.name == "name"
103
+ parse(n, div) unless n.name == "fmt-name"
105
104
  end
106
105
  end
107
106
  end
@@ -50,14 +50,13 @@ module IsoDoc
50
50
  "#{@klass.norm_ref_xpath} | //sections/terms | " \
51
51
  "//sections/definitions | //clause[parent::sections]"
52
52
  if @hierarchical_assets
53
- hierarchical_asset_names(doc.xpath("//xmlns:preface/child::*"),
54
- "Preface")
53
+ hierarchical_asset_names(doc.xpath("//xmlns:preface/child::*"), "Preface")
55
54
  doc.xpath(ns(middle_sections)).each do |c|
56
55
  hierarchical_asset_names(c, @anchors[c["id"]][:label])
57
56
  end
58
57
  else
59
- sequential_asset_names(doc.xpath(ns("//preface/*")))
60
- sequential_asset_names(doc.xpath(ns(middle_sections)))
58
+ sequential_asset_names(doc.xpath(ns("//preface/* | " + middle_sections)))
59
+ #sequential_asset_names(doc.xpath(ns(middle_sections)))
61
60
  end
62
61
  end
63
62
 
@@ -65,9 +64,9 @@ module IsoDoc
65
64
  c = Counter.new
66
65
  clause.xpath(ns(".//formula")).noblank.each do |t|
67
66
  @anchors[t["id"]] = anchor_struct(
68
- c.increment(t).print, container ? t : nil,
67
+ c.increment(t).print, t,
69
68
  t["inequality"] ? @labels["inequality"] : @labels["formula"],
70
- "formula", t["unnumbered"]
69
+ "formula", { container: container, unnumb: t["unnumbered"] }
71
70
  )
72
71
  end
73
72
  end
@@ -78,10 +77,20 @@ module IsoDoc
78
77
  sequence = UUIDTools::UUID.random_create.to_s
79
78
  notes = t.xpath(ns("./termnote"))
80
79
  notes.noblank.each do |n|
81
- @anchors[n["id"]] =
82
- anchor_struct("#{@labels['termnote']} #{increment_label(notes, n, c)}",
83
- n, @labels["note_xref"], "termnote", false)
80
+ @anchors[n["id"]] =
81
+ { label: termnote_label(n, increment_label(notes, n, c)), type: "termnote",
82
+ value: c.print, elem: @labels["termnote"],
83
+ container: t["id"],
84
+ xref: anchor_struct_xref(c.print, n, @labels["note_xref"]) }
85
+ .merge(sequence: sequence)
86
+ =begin
87
+ anchor_struct(
88
+ termnote_label(n, increment_label(notes, n, c)),
89
+ #labelled_autonum(@labels["termnote"], increment_label(notes, n, c)),
90
+ #"#{@labels['termnote']} #{increment_label(notes, n, c)}",
91
+ n, @labels["note_xref"], "termnote", { container: true })
84
92
  .merge(sequence: sequence)
93
+ =end
85
94
  end
86
95
  end
87
96
  end
@@ -93,7 +102,7 @@ module IsoDoc
93
102
 
94
103
  @anchors[n["id"]] =
95
104
  anchor_struct(increment_label(notes, n, counter), n,
96
- @labels["note_xref"], "note", false)
105
+ @labels["note_xref"], "note", { container: true })
97
106
  .merge(sequence: sequence)
98
107
  end
99
108
  end
@@ -102,9 +111,8 @@ module IsoDoc
102
111
  if @doctype == "whitepaper"
103
112
  title = Common::case_with_markup(@labels["annex"], "capital",
104
113
  @script)
105
- l10n("#{title} #{num}")
106
- else
107
- super.sub(%r{<br/>(.*)$}, "<br/><span class='obligation'>\\1</span>")
114
+ l10n(labelled_autonum(title, num))
115
+ else super
108
116
  end
109
117
  end
110
118
  end
@@ -1783,9 +1783,21 @@ that the `number` given for the series applies to the second iteration of number
1783
1783
  May be used to differentiate rendering of notes in bibliographies</a:documentation>
1784
1784
  </attribute>
1785
1785
  </optional>
1786
- <ref name="LocalizedMarkedUpString">
1786
+ <ref name="LocalizedStringAttributes">
1787
1787
  <a:documentation>The content of the note</a:documentation>
1788
1788
  </ref>
1789
+ <choice>
1790
+ <oneOrMore>
1791
+ <ref name="BasicBlockNoId">
1792
+ <a:documentation>Multiple blocks of content</a:documentation>
1793
+ </ref>
1794
+ </oneOrMore>
1795
+ <oneOrMore>
1796
+ <ref name="TextElement">
1797
+ <a:documentation>Single block of content</a:documentation>
1798
+ </ref>
1799
+ </oneOrMore>
1800
+ </choice>
1789
1801
  </element>
1790
1802
  </define>
1791
1803
  <define name="bibabstract">
@@ -235,7 +235,9 @@ module Metanorma
235
235
  def provenance_title1(updates, merges)
236
236
  ret = ""
237
237
  u = @isodoc.i18n.boolean_conj(tm_id_extract(updates), "and")
238
+ .gsub(%r{</?(conn|comma|enum-comma)>}, "")
238
239
  m = @isodoc.i18n.boolean_conj(tm_id_extract(merges), "and")
240
+ .gsub(%r{</?(conn|comma|enum-comma)>}, "")
239
241
  u.empty? or ret += "Revision of #{u}"
240
242
  !u.empty? && !m.empty? and ret += "<br/>"
241
243
  m.empty? or ret += "Incorporates #{m}"
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.3.4 -->
20
+ <!-- VERSION v1.4.1 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -326,7 +326,7 @@ normative or informative references, some split references into sections organiz
326
326
  <a:documentation>Content of note</a:documentation>
327
327
  <oneOrMore>
328
328
  <choice>
329
- <ref name="paragraph"/>
329
+ <ref name="paragraph-with-footnote"/>
330
330
  <ref name="ul"/>
331
331
  <ref name="ol"/>
332
332
  <ref name="dl"/>
@@ -412,7 +412,7 @@ normative or informative references, some split references into sections organiz
412
412
  <element name="note">
413
413
  <ref name="OptionalId"/>
414
414
  <oneOrMore>
415
- <ref name="paragraph"/>
415
+ <ref name="paragraph-with-footnote"/>
416
416
  </oneOrMore>
417
417
  </element>
418
418
  </define>
@@ -1977,7 +1977,7 @@ used in document amendments</a:documentation>
1977
1977
  <oneOrMore>
1978
1978
  <choice>
1979
1979
  <a:documentation>Content of the verbal representation of the term</a:documentation>
1980
- <ref name="paragraph"/>
1980
+ <ref name="paragraph-with-footnote"/>
1981
1981
  <ref name="dl"/>
1982
1982
  <ref name="ol"/>
1983
1983
  <ref name="ul"/>
@@ -2015,7 +2015,7 @@ used in document amendments</a:documentation>
2015
2015
  <oneOrMore>
2016
2016
  <choice>
2017
2017
  <a:documentation>Content of the term note</a:documentation>
2018
- <ref name="paragraph"/>
2018
+ <ref name="paragraph-with-footnote"/>
2019
2019
  <ref name="ul"/>
2020
2020
  <ref name="ol"/>
2021
2021
  <ref name="dl"/>
@@ -2037,7 +2037,7 @@ used in document amendments</a:documentation>
2037
2037
  <ref name="dl"/>
2038
2038
  <ref name="quote"/>
2039
2039
  <ref name="sourcecode"/>
2040
- <ref name="paragraph"/>
2040
+ <ref name="paragraph-with-footnote"/>
2041
2041
  <ref name="figure"/>
2042
2042
  </choice>
2043
2043
  </oneOrMore>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Ieee
3
- VERSION = "1.3.3".freeze
3
+ VERSION = "1.3.6".freeze
4
4
  end
5
5
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ["lib"]
26
26
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
27
27
 
28
- spec.add_dependency "metanorma-standoc", "~> 2.9.6"
28
+ spec.add_dependency "metanorma-standoc", "~> 2.10.2"
29
29
  spec.add_dependency "mnconvert", "~> 1.20"
30
30
  spec.add_dependency "pubid"
31
31
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ieee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.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: 2024-10-28 00:00:00.000000000 Z
11
+ date: 2024-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.9.6
19
+ version: 2.10.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.9.6
26
+ version: 2.10.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mnconvert
29
29
  requirement: !ruby/object:Gem::Requirement