metanorma-iso 1.7.3 → 1.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04b55e3ca534c69d32ca0f9379574e2ea64af41abdcfcd723532917cce1dbb11
4
- data.tar.gz: 9a4910e86d2792bf82e863ed1d57cd0bd492667acc2eef5eaf0d7443b99fd730
3
+ metadata.gz: e78f6a52feda554f9e3578e30ffd3af32afe6c771d16414f584ceadd38589b13
4
+ data.tar.gz: 2da68557d15c9436c6dc310203895e5611c64331b0f038e66590ad4611bdb5db
5
5
  SHA512:
6
- metadata.gz: cee47fc2106cf2573bb9c5d1198c230c0b9c1e350a8c12b5c1764eb683e058579619cbcb26c33a8cd4f838ccaccc7282ba1e990777d672c5b0b1269f0f950ce7
7
- data.tar.gz: 4515aa0402dddc620a72837044e3c47a8864a2503109a57846037f96041f7a88d9c4dca652c7392b9ce1ab45d158922316d565b32b8c35a6dc2695b108da46c7
6
+ metadata.gz: f1d80f1af14c5abfd4cc74a0e91dbcc0e4414fd46105ebbd80507871bba8ea788c1e8b09525b8672d85bd4f453d07b5a2b2621a96ebc63270999a2b9989ecbaa
7
+ data.tar.gz: '09b997180fa6f3c0a1ac2298efda92fc634f5ea1404115c1d65104da739ca278f6a134ee9114ba2b1d53fc4c9415ba6655a7612982479964b5b1bb2c5790a85a'
data/.gitignore CHANGED
@@ -9,3 +9,5 @@ spec/examples/rice.doc
9
9
  spec/examples/rice.html
10
10
  spec/examples/rice.xml
11
11
  spec/examples/rice_files/
12
+
13
+ .rubocop-https--*
data/.rubocop.yml CHANGED
@@ -1,6 +1,14 @@
1
1
  # This project follows the Ribose OSS style guide.
2
2
  # https://github.com/riboseinc/oss-guides
3
3
  # All project-specific additions and overrides should be specified in this file.
4
-
5
4
  inherit_from:
6
5
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
6
+
7
+ # local repo-specific modifications
8
+
9
+ AllCops:
10
+ DisplayCopNames: false
11
+ StyleGuideCopsOnly: false
12
+ TargetRubyVersion: 2.4
13
+ Rails:
14
+ Enabled: true
@@ -124,7 +124,7 @@
124
124
  <value>application/tei+xml</value>
125
125
  <value>text/x-asciidoc</value>
126
126
  <value>text/markdown</value>
127
- <value>application/x-isodoc+xml</value>
127
+ <value>application/x-metanorma+xml</value>
128
128
  <text/>
129
129
  </choice>
130
130
  </attribute>
@@ -452,6 +452,7 @@
452
452
  <attribute name="type">
453
453
  <choice>
454
454
  <value>isni</value>
455
+ <value>orcid</value>
455
456
  <value>uri</value>
456
457
  </choice>
457
458
  </attribute>
@@ -461,10 +462,7 @@
461
462
  <define name="org-identifier">
462
463
  <element name="identifier">
463
464
  <attribute name="type">
464
- <choice>
465
- <value>orcid</value>
466
- <value>uri</value>
467
- </choice>
465
+ <data type="string" datatypeLibrary=""/>
468
466
  </attribute>
469
467
  <text/>
470
468
  </element>
@@ -1106,7 +1104,7 @@
1106
1104
  <value>complementOf</value>
1107
1105
  <value>obsoletes</value>
1108
1106
  <value>obsoletedBy</value>
1109
- <value>cited</value>
1107
+ <value>cites</value>
1110
1108
  <value>isCitedIn</value>
1111
1109
  </choice>
1112
1110
  </define>
@@ -67,7 +67,7 @@ module Asciidoctor
67
67
  stage = get_stage(node)
68
68
  substage = get_substage(node)
69
69
  xml.status do |s|
70
- s.stage stage, **attr_code(abbreviation: stage_abbr(stage, substage, doctype(node)))
70
+ s.stage stage, **attr_code(abbreviation: cover_stage_abbr(node))
71
71
  s.substage substage
72
72
  node.attr("iteration") && (s.iteration node.attr("iteration"))
73
73
  end
@@ -11,7 +11,7 @@ module Asciidoctor
11
11
  class Converter < Standoc::Converter
12
12
  STAGE_ABBRS = {
13
13
  "00": "PWI",
14
- "10": "NWIP",
14
+ "10": "NP",
15
15
  "20": "WD",
16
16
  "30": "CD",
17
17
  "40": "DIS",
@@ -37,15 +37,11 @@ module Asciidoctor
37
37
  return nil if stage.to_i > 60
38
38
  ret = STAGE_ABBRS[stage.to_sym]
39
39
  ret = "PRF" if stage == "60" && substage == "00"
40
+ ret = "AWI" if stage == "10" && substage == "99"
40
41
  if %w(amendment technical-corrigendum technical-report
41
42
  technical-specification).include?(doctype)
42
- ret = "NP" if stage == "10"
43
- ret = "AWI" if stage == "10" && substage == "99"
44
- ret = "D" if stage == "40" and doctype == "amendment"
45
- ret = "FD" if stage == "50" and
46
- %w(amendment technical-corrigendum).include?(doctype)
47
- ret = "D" if stage == "50" and
48
- %w(technical-report technical-specification).include?(doctype)
43
+ ret = "D" if stage == "40" && doctype == "amendment"
44
+ ret = "FD" if stage == "50" && %w(amendment technical-corrigendum).include?(doctype)
49
45
  end
50
46
  ret
51
47
  end
@@ -54,8 +50,7 @@ module Asciidoctor
54
50
  return "Proof" if stage == "60" && substage == "00"
55
51
  ret = STAGE_NAMES[stage.to_sym]
56
52
  if iteration && %w(20 30).include?(stage)
57
- prefix = iteration.to_i.localize(@lang.to_sym).
58
- to_rbnf_s("SpelloutRules", "spellout-ordinal")
53
+ prefix = iteration.to_i.localize(@lang.to_sym).to_rbnf_s("SpelloutRules", "spellout-ordinal")
59
54
  ret = "#{prefix.capitalize} #{ret.downcase}"
60
55
  end
61
56
  ret
@@ -70,16 +65,13 @@ module Asciidoctor
70
65
  end
71
66
 
72
67
  def iso_id(node, xml)
73
- return unless !@amd && node.attr("docnumber") ||
74
- @amd && node.attr("updates")
68
+ return unless !@amd && node.attr("docnumber") || @amd && node.attr("updates")
75
69
  dn = iso_id1(node)
76
70
  dn1 = id_stage_prefix(dn, node, false)
77
71
  dn2 = id_stage_prefix(dn, node, true)
78
72
  xml.docidentifier dn1, **attr_code(type: "ISO")
79
- xml.docidentifier id_langsuffix(dn1, node),
80
- **attr_code(type: "iso-with-lang")
81
- xml.docidentifier id_langsuffix(dn2, node),
82
- **attr_code(type: "iso-reference")
73
+ xml.docidentifier id_langsuffix(dn1, node), **attr_code(type: "iso-with-lang")
74
+ xml.docidentifier id_langsuffix(dn2, node), **attr_code(type: "iso-reference")
83
75
  end
84
76
 
85
77
  def iso_id1(node)
@@ -132,18 +124,29 @@ module Asciidoctor
132
124
  dn
133
125
  end
134
126
 
135
- def id_stage_abbr(stage, substage, node)
136
- ret = IsoDoc::Iso::Metadata.new("en", "Latn", @i18n).
137
- status_abbrev(stage_abbr(stage, substage, doctype(node)),
138
- substage, node.attr("iteration"),
139
- node.attr("draft"), doctype(node))
140
- if %w(amendment technical-corrigendum amendment
141
- technical-corrigendum).include?(doctype(node))
142
- ret = ret + " " unless %w(40 50).include?(stage)
127
+ def id_stage_abbr(stage, substage, node, bare = false)
128
+ ret = bare ?
129
+ IsoDoc::Iso::Metadata.new("en", "Latn", @i18n)
130
+ .status_abbrev(stage_abbr(stage, substage, doctype(node)),
131
+ substage, nil, nil, doctype(node)) :
132
+ IsoDoc::Iso::Metadata.new("en", "Latn", @i18n)
133
+ .status_abbrev(stage_abbr(stage, substage, doctype(node)),
134
+ substage, node.attr("iteration"),
135
+ node.attr("draft"), doctype(node))
136
+ if %w(amendment technical-corrigendum technical-report technical-specification).include?(doctype(node))
137
+ ret = ret + " " unless %w(D FD).include?(ret)
143
138
  end
144
139
  ret
145
140
  end
146
141
 
142
+ def cover_stage_abbr(node)
143
+ stage = get_stage(node)
144
+ abbr = id_stage_abbr(get_stage(node), get_substage(node), node, true)
145
+ typeabbr = get_typeabbr(node, true)
146
+ typeabbr = "" if stage.to_i > 50 || stage.to_i == 60 && get_substage(node).to_i < 60
147
+ "#{abbr}#{typeabbr}".strip
148
+ end
149
+
147
150
  def id_stage_prefix(dn, node, force_year)
148
151
  stage = get_stage(node)
149
152
  typeabbr = get_typeabbr(node)
@@ -183,10 +186,12 @@ module Asciidoctor
183
186
  node.attr("docsubstage") || ( stage == "60" ? "60" : "00" )
184
187
  end
185
188
 
186
- def get_typeabbr(node)
189
+ def get_typeabbr(node, amd = false)
187
190
  case doctype(node)
188
191
  when "technical-report" then "TR "
189
192
  when "technical-specification" then "TS "
193
+ when "amendment" then (amd ? "Amd " : "")
194
+ when "technical-corrigendum" then (amd ? "Cor " : "")
190
195
  else
191
196
  nil
192
197
  end
@@ -3,9 +3,13 @@ require "metanorma-standoc"
3
3
  module Asciidoctor
4
4
  module ISO
5
5
  class Converter < Standoc::Converter
6
+ def title_lang_part(doc, part, lang)
7
+ doc.at("//bibdata/title[@type='title-#{part}' and @language='#{lang}']")
8
+ end
9
+
6
10
  def title_intro_validate(root)
7
- title_intro_en = root.at("//title[@type='title-intro' and @language='en']")
8
- title_intro_fr = root.at("//title[@type='title-intro' and @language='fr']")
11
+ title_intro_en = title_lang_part(root, "intro", "en")
12
+ title_intro_fr = title_lang_part(root, "intro", "fr")
9
13
  if title_intro_en.nil? && !title_intro_fr.nil?
10
14
  @log.add("Style", title_intro_fr, "No English Title Intro!")
11
15
  end
@@ -15,8 +19,8 @@ module Asciidoctor
15
19
  end
16
20
 
17
21
  def title_main_validate(root)
18
- title_main_en = root.at("//title[@type='title-main' and @language='en']")
19
- title_main_fr = root.at("//title[@type='title-main' and @language='fr']")
22
+ title_main_en = title_lang_part(root, "main", "en")
23
+ title_main_fr = title_lang_part(root, "main", "fr")
20
24
  if title_main_en.nil? && !title_main_fr.nil?
21
25
  @log.add("Style", title_main_fr, "No English Title!")
22
26
  end
@@ -26,8 +30,8 @@ module Asciidoctor
26
30
  end
27
31
 
28
32
  def title_part_validate(root)
29
- title_part_en = root.at("//title[@type='title-part' and @language='en']")
30
- title_part_fr = root.at("//title[@type='title-part' and @language='fr']")
33
+ title_part_en = title_lang_part(root, "part", "en")
34
+ title_part_fr = title_lang_part(root, "part", "fr")
31
35
  (title_part_en.nil? && !title_part_fr.nil?) &&
32
36
  @log.add("Style", title_part_fr, "No English Title Part!")
33
37
  (!title_part_en.nil? && title_part_fr.nil?) &&
@@ -41,20 +45,22 @@ module Asciidoctor
41
45
  iec = root.at("//bibdata/contributor[role/@type = 'publisher']/"\
42
46
  "organization[abbreviation = 'IEC' or "\
43
47
  "name = 'International Electrotechnical Commission']")
44
- @log.add("Style", docid, "Subpart defined on non-IEC document!") if subpart && !iec
48
+ subpart && !iec and
49
+ @log.add("Style", docid, "Subpart defined on non-IEC document!")
45
50
  end
46
51
 
47
52
  # ISO/IEC DIR 2, 11.5.2
48
53
  def title_names_type_validate(root)
49
54
  doctypes = /International\sStandard | Technical\sSpecification |
50
55
  Publicly\sAvailable\sSpecification | Technical\sReport | Guide /xi
51
- title_main_en = root.at("//title[@type='title-main' and @language='en']")
56
+ title_main_en = title_lang_part(root, "main", "en")
52
57
  if !title_main_en.nil? && doctypes.match(title_main_en.text)
53
58
  @log.add("Style", title_main_en, "Main Title may name document type")
54
59
  end
55
- title_intro_en = root.at("//title[@type='title-intro' and @language='en']")
60
+ title_intro_en = title_lang_part(root, "intro", "en")
56
61
  if !title_intro_en.nil? && doctypes.match(title_intro_en.text)
57
- @log.add("Style", title_intro_en, "Title Intro may name document type")
62
+ @log.add("Style", title_intro_en,
63
+ "Title Intro may name document type")
58
64
  end
59
65
  end
60
66
 
@@ -64,8 +70,9 @@ module Asciidoctor
64
70
  title = s&.at("./title")&.text || s.name
65
71
  s.xpath("./clause | ./terms | ./references").each do |ss|
66
72
  subtitle = ss.at("./title")
67
- !subtitle.nil? && !subtitle&.text&.empty? ||
68
- @log.add("Style", ss, "#{title}: each first-level subclause must have a title")
73
+ !subtitle.nil? && !subtitle&.text&.empty? or
74
+ @log.add("Style", ss,
75
+ "#{title}: each first-level subclause must have a title")
69
76
  end
70
77
  end
71
78
  end
@@ -82,7 +89,8 @@ module Asciidoctor
82
89
  withtitle = withtitle || (subtitle && !subtitle.text.empty?)
83
90
  end
84
91
  notitle && withtitle &&
85
- @log.add("Style", nil, "#{label}: all subclauses must have a title, or none")
92
+ @log.add("Style", nil,
93
+ "#{label}: all subclauses must have a title, or none")
86
94
  end
87
95
 
88
96
  def title_validate(root)
@@ -27,7 +27,8 @@ module IsoDoc
27
27
  c.add_child index_entries(words, index[k], w)
28
28
  end
29
29
  end
30
- @xrefs.bookmark_anchor_names(docxml.xpath(ns(@xrefs.sections_xpath)))
30
+ docxml.xpath(ns("//indexsect//xref")).each { |x| x.children.remove }
31
+ @xrefs.bookmark_anchor_names(docxml)
31
32
  end
32
33
 
33
34
  def sortable(s)
@@ -5,6 +5,7 @@
5
5
  <xsl:param name="svg_images"/>
6
6
  <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
7
7
  <xsl:variable name="images" select="document($svg_images)"/>
8
+ <xsl:param name="basepath"/>
8
9
 
9
10
 
10
11
 
@@ -343,8 +344,8 @@
343
344
  <fo:declarations>
344
345
  <xsl:call-template name="addPDFUAmeta"/>
345
346
  <xsl:for-each select="//*[local-name() = 'eref'][generate-id(.)=generate-id(key('attachments',@bibitemid)[1])]">
346
- <xsl:variable name="url" select="concat('url(', ., ')')"/>
347
- <pdf:embedded-file src="{$url}"/>
347
+ <xsl:variable name="url" select="concat('url(file:',$basepath, @bibitemid, ')')"/>
348
+ <pdf:embedded-file src="{$url}" filename="{@bibitemid}"/>
348
349
  </xsl:for-each>
349
350
  </fo:declarations>
350
351
 
@@ -1650,6 +1651,12 @@
1650
1651
  <xsl:if test="@id">
1651
1652
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
1652
1653
  </xsl:if>
1654
+ <!-- bookmarks only in paragraph -->
1655
+ <xsl:if test="count(iso:bookmark) != 0 and count(*) = count(iso:bookmark) and normalize-space() = ''">
1656
+ <xsl:attribute name="font-size">0</xsl:attribute>
1657
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1658
+ <xsl:attribute name="line-height">0</xsl:attribute>
1659
+ </xsl:if>
1653
1660
  <xsl:apply-templates/>
1654
1661
  </xsl:element>
1655
1662
  <xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
@@ -1956,6 +1963,7 @@
1956
1963
  <!-- =================== -->
1957
1964
  <!-- SVG images processing -->
1958
1965
  <!-- =================== -->
1966
+ <xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image']) and *[local-name() = 'svg']]/*[local-name() = 'name']/*[local-name() = 'bookmark']" priority="2"/>
1959
1967
  <xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image'])]/*[local-name() = 'svg']" priority="2">
1960
1968
 
1961
1969
  <xsl:choose>
@@ -2005,6 +2013,13 @@
2005
2013
  <fo:table-cell column-number="2">
2006
2014
  <fo:block>
2007
2015
  <fo:block-container width="{$width_scale}px" height="{$height_scale}px">
2016
+ <xsl:if test="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
2017
+ <fo:block line-height="0" font-size="0">
2018
+ <xsl:for-each select="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
2019
+ <xsl:call-template name="bookmark"/>
2020
+ </xsl:for-each>
2021
+ </fo:block>
2022
+ </xsl:if>
2008
2023
  <fo:block text-depth="0" line-height="0" font-size="0">
2009
2024
  <fo:instream-foreign-object fox:alt-text="{../*[local-name() = 'name']}">
2010
2025
  <xsl:attribute name="width">100%</xsl:attribute>
@@ -2158,7 +2173,7 @@
2158
2173
  <!-- =================== -->
2159
2174
 
2160
2175
  <!-- For express listings PDF attachments -->
2161
- <xsl:template match="*[local-name() = 'eref'][contains(., '.exp')]" priority="2">
2176
+ <xsl:template match="*[local-name() = 'eref'][contains(@bibitemid, '.exp')]" priority="2">
2162
2177
  <fo:inline xsl:use-attribute-sets="eref-style">
2163
2178
  <xsl:variable name="url" select="concat('url(embedded-file:', @bibitemid, ')')"/>
2164
2179
  <fo:basic-link external-destination="{$url}" fox:alt-text="{@citeas}">
@@ -6111,8 +6126,8 @@
6111
6126
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
6112
6127
  <xsl:apply-templates/>
6113
6128
  </fo:block>
6114
- </xsl:template><xsl:template match="*[local-name() = 'bookmark']">
6115
- <fo:inline id="{@id}"/>
6129
+ </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
6130
+ <fo:inline id="{@id}" font-size="1pt"/>
6116
6131
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
6117
6132
  <!-- <row>
6118
6133
  <date>05-07-2013</date>
@@ -5,6 +5,7 @@
5
5
  <xsl:param name="svg_images"/>
6
6
  <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
7
7
  <xsl:variable name="images" select="document($svg_images)"/>
8
+ <xsl:param name="basepath"/>
8
9
 
9
10
 
10
11
 
@@ -343,8 +344,8 @@
343
344
  <fo:declarations>
344
345
  <xsl:call-template name="addPDFUAmeta"/>
345
346
  <xsl:for-each select="//*[local-name() = 'eref'][generate-id(.)=generate-id(key('attachments',@bibitemid)[1])]">
346
- <xsl:variable name="url" select="concat('url(', ., ')')"/>
347
- <pdf:embedded-file src="{$url}"/>
347
+ <xsl:variable name="url" select="concat('url(file:',$basepath, @bibitemid, ')')"/>
348
+ <pdf:embedded-file src="{$url}" filename="{@bibitemid}"/>
348
349
  </xsl:for-each>
349
350
  </fo:declarations>
350
351
 
@@ -1650,6 +1651,12 @@
1650
1651
  <xsl:if test="@id">
1651
1652
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
1652
1653
  </xsl:if>
1654
+ <!-- bookmarks only in paragraph -->
1655
+ <xsl:if test="count(iso:bookmark) != 0 and count(*) = count(iso:bookmark) and normalize-space() = ''">
1656
+ <xsl:attribute name="font-size">0</xsl:attribute>
1657
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1658
+ <xsl:attribute name="line-height">0</xsl:attribute>
1659
+ </xsl:if>
1653
1660
  <xsl:apply-templates/>
1654
1661
  </xsl:element>
1655
1662
  <xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
@@ -1956,6 +1963,7 @@
1956
1963
  <!-- =================== -->
1957
1964
  <!-- SVG images processing -->
1958
1965
  <!-- =================== -->
1966
+ <xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image']) and *[local-name() = 'svg']]/*[local-name() = 'name']/*[local-name() = 'bookmark']" priority="2"/>
1959
1967
  <xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image'])]/*[local-name() = 'svg']" priority="2">
1960
1968
 
1961
1969
  <xsl:choose>
@@ -2005,6 +2013,13 @@
2005
2013
  <fo:table-cell column-number="2">
2006
2014
  <fo:block>
2007
2015
  <fo:block-container width="{$width_scale}px" height="{$height_scale}px">
2016
+ <xsl:if test="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
2017
+ <fo:block line-height="0" font-size="0">
2018
+ <xsl:for-each select="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
2019
+ <xsl:call-template name="bookmark"/>
2020
+ </xsl:for-each>
2021
+ </fo:block>
2022
+ </xsl:if>
2008
2023
  <fo:block text-depth="0" line-height="0" font-size="0">
2009
2024
  <fo:instream-foreign-object fox:alt-text="{../*[local-name() = 'name']}">
2010
2025
  <xsl:attribute name="width">100%</xsl:attribute>
@@ -2158,7 +2173,7 @@
2158
2173
  <!-- =================== -->
2159
2174
 
2160
2175
  <!-- For express listings PDF attachments -->
2161
- <xsl:template match="*[local-name() = 'eref'][contains(., '.exp')]" priority="2">
2176
+ <xsl:template match="*[local-name() = 'eref'][contains(@bibitemid, '.exp')]" priority="2">
2162
2177
  <fo:inline xsl:use-attribute-sets="eref-style">
2163
2178
  <xsl:variable name="url" select="concat('url(embedded-file:', @bibitemid, ')')"/>
2164
2179
  <fo:basic-link external-destination="{$url}" fox:alt-text="{@citeas}">
@@ -6111,8 +6126,8 @@
6111
6126
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
6112
6127
  <xsl:apply-templates/>
6113
6128
  </fo:block>
6114
- </xsl:template><xsl:template match="*[local-name() = 'bookmark']">
6115
- <fo:inline id="{@id}"/>
6129
+ </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
6130
+ <fo:inline id="{@id}" font-size="1pt"/>
6116
6131
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
6117
6132
  <!-- <row>
6118
6133
  <date>05-07-2013</date>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.7.3".freeze
3
+ VERSION = "1.7.4".freeze
4
4
  end
5
5
  end
@@ -43,7 +43,7 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency "guard-rspec", "~> 4.7"
44
44
  spec.add_development_dependency "rake" , "~> 13.0"
45
45
  spec.add_development_dependency "rspec", "~> 3.6"
46
- spec.add_development_dependency "rubocop", "= 0.54.0"
46
+ spec.add_development_dependency "rubocop", "~> 1.5.2"
47
47
  spec.add_development_dependency "simplecov", "~> 0.15"
48
48
  spec.add_development_dependency "timecop", "~> 0.9"
49
49
  spec.add_development_dependency "iev", "~> 0.2.0"
@@ -235,7 +235,7 @@ RSpec.describe Asciidoctor::ISO do
235
235
  <language>en</language>
236
236
  <script>Latn</script>
237
237
  <status>
238
- <stage abbreviation="NP">10</stage>
238
+ <stage abbreviation="NP Amd">10</stage>
239
239
  <substage>20</substage>
240
240
  <iteration>3</iteration>
241
241
  </status>
@@ -320,7 +320,7 @@ RSpec.describe Asciidoctor::ISO do
320
320
  <language>en</language>
321
321
  <script>Latn</script>
322
322
  <status>
323
- <stage abbreviation="CD">30</stage>
323
+ <stage abbreviation="CD Amd">30</stage>
324
324
  <substage>00</substage>
325
325
  </status>
326
326
  <copyright>
@@ -389,7 +389,7 @@ RSpec.describe Asciidoctor::ISO do
389
389
  <language>en</language>
390
390
  <script>Latn</script>
391
391
  <status>
392
- <stage abbreviation="D">40</stage>
392
+ <stage abbreviation="DAmd">40</stage>
393
393
  <substage>00</substage>
394
394
  </status>
395
395
  <copyright>
@@ -527,7 +527,7 @@ RSpec.describe Asciidoctor::ISO do
527
527
  <language>en</language>
528
528
  <script>Latn</script>
529
529
  <status>
530
- <stage abbreviation="CD">30</stage>
530
+ <stage abbreviation="CD Cor">30</stage>
531
531
  <substage>00</substage>
532
532
  </status>
533
533
  <copyright>
@@ -596,7 +596,7 @@ RSpec.describe Asciidoctor::ISO do
596
596
  <language>en</language>
597
597
  <script>Latn</script>
598
598
  <status>
599
- <stage abbreviation='FD'>50</stage>
599
+ <stage abbreviation='FDCor'>50</stage>
600
600
  <substage>00</substage>
601
601
  </status>
602
602
  <copyright>
@@ -406,7 +406,7 @@ RSpec.describe Asciidoctor::ISO do
406
406
  OUTPUT
407
407
  end
408
408
 
409
- it "defaults substage, defines iteration on stage 50, gives stage 50 on technical specification" do
409
+ it "defaults substage, defines iteration on stage 50" do
410
410
  output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
411
411
  = Document title
412
412
  Author
@@ -417,15 +417,15 @@ RSpec.describe Asciidoctor::ISO do
417
417
  :docnumber: 1000
418
418
  :docstage: 50
419
419
  :language: fr
420
- :doctype: technical-specification
420
+ :doctype: international-standard
421
421
  :iteration: 2
422
422
  INPUT
423
423
  expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
424
424
  <iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
425
425
  <bibdata type="standard">
426
- <docidentifier type="ISO">ISO/DTS 1000.2</docidentifier>
427
- <docidentifier type="iso-with-lang">ISO/DTS 1000.2(F)</docidentifier>
428
- <docidentifier type="iso-reference">ISO/DTS 1000.2(F)</docidentifier>
426
+ <docidentifier type='ISO'>ISO/FDIS 1000.2</docidentifier>
427
+ <docidentifier type='iso-with-lang'>ISO/FDIS 1000.2(F)</docidentifier>
428
+ <docidentifier type='iso-reference'>ISO/FDIS 1000.2(F)</docidentifier>
429
429
  <docnumber>1000</docnumber>
430
430
  <contributor>
431
431
  <role type="author"/>
@@ -444,7 +444,7 @@ RSpec.describe Asciidoctor::ISO do
444
444
  <language>fr</language>
445
445
  <script>Latn</script>
446
446
  <status>
447
- <stage abbreviation="D">50</stage>
447
+ <stage abbreviation="FDIS">50</stage>
448
448
  <substage>00</substage>
449
449
  <iteration>2</iteration>
450
450
  </status>
@@ -458,7 +458,7 @@ RSpec.describe Asciidoctor::ISO do
458
458
  </owner>
459
459
  </copyright>
460
460
  <ext>
461
- <doctype>technical-specification</doctype>
461
+ <doctype>international-standard</doctype>
462
462
  <editorialgroup>
463
463
  <technical-committee/>
464
464
  <subcommittee/>
@@ -4,6 +4,7 @@ require "fileutils"
4
4
  RSpec.describe Asciidoctor::ISO do
5
5
  context "when xref_error.adoc compilation" do
6
6
  it "generates error file" do
7
+ FileUtils.rm_f "xref_error.err"
7
8
  File.write("xref_error.adoc", <<~"CONTENT")
8
9
  = X
9
10
  A
@@ -1226,7 +1227,7 @@ RSpec.describe Asciidoctor::ISO do
1226
1227
  expect(File.read("test.err")).to include "No English Title Intro"
1227
1228
  end
1228
1229
 
1229
- it "Warning if English title and no French intro" do
1230
+ it "Warning if English title and no French title" do
1230
1231
  Asciidoctor.convert(<<~"INPUT", *OPTIONS)
1231
1232
  = Document title
1232
1233
  Author
@@ -1237,6 +1238,7 @@ RSpec.describe Asciidoctor::ISO do
1237
1238
 
1238
1239
  INPUT
1239
1240
  expect(File.read("test.err")).to include "No French Title"
1241
+ expect(File.read("test.err")).not_to include "No French Intro"
1240
1242
  end
1241
1243
 
1242
1244
  it "Warning if French title and no English title" do
@@ -1278,6 +1280,21 @@ RSpec.describe Asciidoctor::ISO do
1278
1280
  expect(File.read("test.err")).to include "No English Title Part"
1279
1281
  end
1280
1282
 
1283
+ it "No warning if French main title and English main title" do
1284
+ Asciidoctor.convert(<<~"INPUT", *OPTIONS)
1285
+ = Document title
1286
+ Author
1287
+ :docfile: test.adoc
1288
+ :nodoc:
1289
+ :title-part-fr: Title
1290
+ :title-part-en: Title
1291
+ :no-isobib:
1292
+
1293
+ INPUT
1294
+ expect(File.read("test.err")).not_to include "No French Title Intro"
1295
+ expect(File.read("test.err")).not_to include "No French Title Part"
1296
+ end
1297
+
1281
1298
  it "Warning if non-IEC document with subpart" do
1282
1299
  Asciidoctor.convert(<<~"INPUT", *OPTIONS)
1283
1300
  = Document title
data/spec/spec_helper.rb CHANGED
@@ -24,6 +24,7 @@ RSpec.configure do |config|
24
24
  c.syntax = :expect
25
25
  end
26
26
 
27
+ =begin
27
28
  config.around do |example|
28
29
  Dir.mktmpdir("rspec-") do |dir|
29
30
  tmp_assets = File.join(dir, "spec/assets/")
@@ -32,6 +33,7 @@ RSpec.configure do |config|
32
33
  Dir.chdir(dir) { example.run }
33
34
  end
34
35
  end
36
+ =end
35
37
  end
36
38
 
37
39
  def strip_guid(xml)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iso
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.3
4
+ version: 1.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-16 00:00:00.000000000 Z
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-jing
@@ -196,16 +196,16 @@ dependencies:
196
196
  name: rubocop
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - '='
199
+ - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 0.54.0
201
+ version: 1.5.2
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - '='
206
+ - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 0.54.0
208
+ version: 1.5.2
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: simplecov
211
211
  requirement: !ruby/object:Gem::Requirement