metanorma-itu 1.0.10 → 1.0.11
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 +4 -4
- data/lib/asciidoctor/itu/cleanup.rb +72 -5
- data/lib/asciidoctor/itu/converter.rb +5 -2
- data/lib/asciidoctor/itu/i18n-en.yaml +5 -1
- data/lib/asciidoctor/itu/isodoc.rng +5 -0
- data/lib/asciidoctor/itu/validate.rb +79 -10
- data/lib/isodoc/itu/base_convert.rb +0 -6
- data/lib/isodoc/itu/html/html_itu_titlepage.html +2 -2
- data/lib/isodoc/itu/html/htmlstyle.scss +6 -0
- data/lib/isodoc/itu/html/itu.scss +4 -0
- data/lib/isodoc/itu/i18n-en.yaml +2 -0
- data/lib/isodoc/itu/metadata.rb +1 -1
- data/lib/isodoc/itu/ref.rb +12 -7
- data/lib/isodoc/itu/xref.rb +16 -5
- data/lib/metanorma/itu.rb +0 -3
- data/lib/metanorma/itu/version.rb +1 -1
- data/metanorma-itu.gemspec +0 -1
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0b6bcda9ee8aa042d7647e9b8865c7bac5a07943541e6278ac311ae35b7ecdb
|
4
|
+
data.tar.gz: 2c2916e7706336f89a13d65cd63022a0a2288a576957684856134f482ecfa7eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3905f473b483696859238779600e0074eb3fb668cef4898ce288d62be053339426afee23d8c6e32e36c8a706dbe0be0f60c5626181c45f78cea30b2baa9e7a23
|
7
|
+
data.tar.gz: 21907c33e9ad329cf2852b10ccce61b9ca407c9fb0e01896a69c60d380d665df3366721cd155db14c48549b1b350c6f74922fe2213f5fdef6c21468a9ad2d586
|
@@ -6,6 +6,71 @@ module Asciidoctor
|
|
6
6
|
x.xpath("//*[@inline-header]").each do |h|
|
7
7
|
h.delete("inline-header")
|
8
8
|
end
|
9
|
+
insert_missing_sections(x) unless @no_insert_missing_sections
|
10
|
+
end
|
11
|
+
|
12
|
+
def table_cleanup(xmldoc)
|
13
|
+
super
|
14
|
+
xmldoc.xpath("//thead/tr[1]/th | //thead/tr[1]/td").each do |t|
|
15
|
+
text = t.at("./descendant::text()") or next
|
16
|
+
text.replace(text.text.titlecase)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def insert_missing_sections(x)
|
21
|
+
insert_scope(x)
|
22
|
+
insert_norm_ref(x)
|
23
|
+
insert_terms(x)
|
24
|
+
insert_symbols(x)
|
25
|
+
insert_conventions(x)
|
26
|
+
end
|
27
|
+
|
28
|
+
def insert_scope(x)
|
29
|
+
x.at("./*/sections") or
|
30
|
+
x.at("./*/preface | ./*/boilerplate | ./*/bibdata").next =
|
31
|
+
"<sections><sentinel/></sections>"
|
32
|
+
x.at("./*/sections/*") or x.at("./*/sections") << "<sentinel/>"
|
33
|
+
ins = x.at("//sections").children.first
|
34
|
+
unless x.at("//sections/clause/title[text() = 'Scope']")
|
35
|
+
ins.previous = "<clause><title>Scope</title><p>"\
|
36
|
+
"#{@labels['clause_empty']}</p></clause>"
|
37
|
+
end
|
38
|
+
x&.at("//sentinel")&.remove
|
39
|
+
end
|
40
|
+
|
41
|
+
def insert_norm_ref(x)
|
42
|
+
x.at("//bibliography") or x.at("./*/annex[last()] | ./*/sections").next =
|
43
|
+
"<bibliography><sentinel/></bibliography>"
|
44
|
+
ins = x.at("//bibliography").children.first
|
45
|
+
unless x.at("//bibliography/references/title[text() = 'References']")
|
46
|
+
ins.previous = "<references><title>References</title><p>"\
|
47
|
+
"#{@labels['clause_empty']}</p></references>"
|
48
|
+
end
|
49
|
+
x&.at("//sentinel")&.remove
|
50
|
+
end
|
51
|
+
|
52
|
+
def insert_terms(x)
|
53
|
+
ins = x.at("//sections/clause/title[text() = 'Scope']")
|
54
|
+
unless x.at("//sections/terms")
|
55
|
+
ins.next = "<terms><title>Definitions</title><p>"\
|
56
|
+
"#{@labels['clause_empty']}</p></terms>"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def insert_symbols(x)
|
61
|
+
ins = x.at("//terms")
|
62
|
+
unless x.at("//sections//definitions")
|
63
|
+
ins.next = "<definitions><title>Definitions</title><p>"\
|
64
|
+
"#{@labels['clause_empty']}</p></definitions>"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def insert_conventions(x)
|
69
|
+
ins = x.at("//sections//definitions")
|
70
|
+
unless x.at("//sections/clause/title[text() = 'Conventions']")
|
71
|
+
ins.next = "<clause><title>Conventions</title><p>"\
|
72
|
+
"#{@labels['clause_empty']}</p></clause>"
|
73
|
+
end
|
9
74
|
end
|
10
75
|
|
11
76
|
def cleanup(xmldoc)
|
@@ -19,7 +84,7 @@ module Asciidoctor
|
|
19
84
|
next unless n.text?
|
20
85
|
n.replace(HTMLEntities.new.encode(
|
21
86
|
n.text.gsub(/\u2019|\u2018|\u201a|\u201b/, "'").
|
22
|
-
|
87
|
+
gsub(/\u201c|\u201d|\u201e|\u201f/, '"'), :basic))
|
23
88
|
end
|
24
89
|
xmldoc
|
25
90
|
end
|
@@ -48,7 +113,8 @@ module Asciidoctor
|
|
48
113
|
|
49
114
|
def pub_class(bib)
|
50
115
|
return 1 if bib.at("#{PUBLISHER}[abbreviation = 'ITU']")
|
51
|
-
return 1 if bib.at("#{PUBLISHER}[name = 'International
|
116
|
+
return 1 if bib.at("#{PUBLISHER}[name = 'International "\
|
117
|
+
"Telecommunication Union']")
|
52
118
|
return 2 if bib.at("#{PUBLISHER}[abbreviation = 'ISO']")
|
53
119
|
return 2 if bib.at("#{PUBLISHER}[name = 'International Organization "\
|
54
120
|
"for Standardization']")
|
@@ -56,7 +122,8 @@ module Asciidoctor
|
|
56
122
|
return 3 if bib.at("#{PUBLISHER}[name = 'International "\
|
57
123
|
"Electrotechnical Commission']")
|
58
124
|
return 4 if bib.at("./docidentifier[@type][not(@type = 'DOI' or "\
|
59
|
-
"@type = 'metanorma' or @type = 'ISSN' or @type =
|
125
|
+
"@type = 'metanorma' or @type = 'ISSN' or @type = "\
|
126
|
+
"'ISBN')]")
|
60
127
|
5
|
61
128
|
end
|
62
129
|
|
@@ -73,8 +140,8 @@ module Asciidoctor
|
|
73
140
|
def sort_biblio_key(bib)
|
74
141
|
pubclass = pub_class(bib)
|
75
142
|
num = bib&.at("./docnumber")&.text
|
76
|
-
id = bib&.at("./docidentifier[not(@type = 'DOI' or "\
|
77
|
-
|
143
|
+
id = bib&.at("./docidentifier[not(@type = 'DOI' or @type = "\
|
144
|
+
"'metanorma' or @type = 'ISSN' or @type = 'ISBN')]")
|
78
145
|
metaid = bib&.at("./docidentifier[@type = 'metanorma']")&.text
|
79
146
|
abbrid = metaid unless /^\[\d+\]$/.match(metaid)
|
80
147
|
type = id['type'] if id
|
@@ -29,6 +29,8 @@ module Asciidoctor
|
|
29
29
|
def init(node)
|
30
30
|
super
|
31
31
|
@smartquotes = node.attr("smartquotes") == "true"
|
32
|
+
@no_insert_missing_sections = doctype(node) != "recommendation" ||
|
33
|
+
node.attr("legacy-do-not-insert-missing-sections")
|
32
34
|
end
|
33
35
|
|
34
36
|
def makexml(node)
|
@@ -63,6 +65,7 @@ module Asciidoctor
|
|
63
65
|
word_converter(node).convert filename unless node.attr("nodoc")
|
64
66
|
pdf_converter(node).convert filename unless node.attr("nodoc")
|
65
67
|
end
|
68
|
+
@log.write(@filename + ".err") unless @novalid
|
66
69
|
@files_to_delete.each { |f| FileUtils.rm f }
|
67
70
|
ret
|
68
71
|
end
|
@@ -146,11 +149,11 @@ module Asciidoctor
|
|
146
149
|
end
|
147
150
|
|
148
151
|
def html_extract_attributes(node)
|
149
|
-
super.merge(hierarchical_assets: node.attr("hierarchical-
|
152
|
+
super.merge(hierarchical_assets: node.attr("hierarchical-object-numbering"))
|
150
153
|
end
|
151
154
|
|
152
155
|
def doc_extract_attributes(node)
|
153
|
-
super.merge(hierarchical_assets: node.attr("hierarchical-
|
156
|
+
super.merge(hierarchical_assets: node.attr("hierarchical-object-numbering"))
|
154
157
|
end
|
155
158
|
|
156
159
|
def html_converter(node)
|
@@ -9,4 +9,8 @@ external_terms_boilerplate:
|
|
9
9
|
no_terms_boilerplate:
|
10
10
|
None.
|
11
11
|
symbols_boilerplate:
|
12
|
-
"This Recommendation uses the following abbreviations:"
|
12
|
+
"This Recommendation uses the following abbreviations and acronyms:"
|
13
|
+
norm_empty_pref:
|
14
|
+
None.
|
15
|
+
clause_empty:
|
16
|
+
None.
|
@@ -12,13 +12,13 @@ module Asciidoctor
|
|
12
12
|
recommendation-corrigendum recommendation-errata recommendation-annex
|
13
13
|
focus-group implementers-guide technical-paper technical-report
|
14
14
|
joint-itu-iso-iec).include? doctype or
|
15
|
-
|
15
|
+
@log.add("Document Attributes", nil, "#{doctype} is not a recognised document type")
|
16
16
|
end
|
17
17
|
|
18
18
|
def stage_validate(xmldoc)
|
19
19
|
stage = xmldoc&.at("//bibdata/status/stage")&.text
|
20
20
|
%w(in-force superseded in-force-prepublished withdrawn draft).include? stage or
|
21
|
-
|
21
|
+
@log.add("Document Attributes", nil, "#{stage} is not a recognised status")
|
22
22
|
end
|
23
23
|
|
24
24
|
def content_validate(doc)
|
@@ -27,38 +27,107 @@ module Asciidoctor
|
|
27
27
|
itu_identifier_validate(doc)
|
28
28
|
bibdata_validate(doc.root)
|
29
29
|
termdef_style(doc.root)
|
30
|
+
title_validate1(doc.root)
|
31
|
+
requirement_validate(doc.root)
|
32
|
+
numbers_validate(doc.root)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Editing Guidelines 6.3
|
36
|
+
def title_validate1(xmldoc)
|
37
|
+
t = xmldoc.at("//bibdata/title")&.text
|
38
|
+
xmldoc.xpath("//bibdata/series/title").each do |s|
|
39
|
+
series = s.text.sub(/^[A-Z]: /, "")
|
40
|
+
t.downcase.include?(series.downcase) and
|
41
|
+
@log.add("Document Attributes", nil, "Title includes series name #{series}")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def extract_text(node)
|
46
|
+
return "" if node.nil?
|
47
|
+
node1 = Nokogiri::XML.fragment(node.to_s)
|
48
|
+
node1.xpath("//link | //locality").each(&:remove)
|
49
|
+
ret = ""
|
50
|
+
node1.traverse { |x| ret += x.text if x.text? }
|
51
|
+
ret
|
52
|
+
end
|
53
|
+
|
54
|
+
# Editing Guidelines 7
|
55
|
+
def requirement_validate(xmldoc)
|
56
|
+
xmldoc.xpath("//preface/*").each do |c|
|
57
|
+
extract_text(c).split(/\.\s+/).each do |t|
|
58
|
+
/\b(shall|must)\b/i.match(t) and
|
59
|
+
@log.add("Style", c, "Requirement possibly in preface: #{t.strip}")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# Editing Guidelines 9.4.3
|
65
|
+
def numbers_validate(xmldoc)
|
66
|
+
xmldoc.xpath("//clause | //preface/* | //annex").each do |x|
|
67
|
+
xx = x.dup
|
68
|
+
xx.xpath("./clause").each { |c| c.remove }
|
69
|
+
style_two_regex_not_prev(x, extract_text(xx),
|
70
|
+
/^(?<num>-?[0-9][0-9,. ]{3,})$/,
|
71
|
+
%r{(\bISO|\bIEC|\bIEEE/)$},
|
72
|
+
"number not broken up in threes by apostrophe")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def style_two_regex_not_prev(n, text, re, re_prev, warning)
|
77
|
+
return if text.nil?
|
78
|
+
arr = text.split(/\W+/)
|
79
|
+
arr.each_index do |i|
|
80
|
+
m = re.match arr[i]
|
81
|
+
m_prev = i.zero? ? nil : re_prev.match(arr[i - 1])
|
82
|
+
if !m.nil? && m_prev.nil?
|
83
|
+
@log.add("Style", n, "#{warning}: #{m[:num]}")
|
84
|
+
end
|
85
|
+
end
|
30
86
|
end
|
31
87
|
|
32
88
|
def approval_validate(xmldoc)
|
33
89
|
s = xmldoc.at("//bibdata/ext/recommendationstatus/approvalstage") || return
|
34
90
|
process = s["process"]
|
35
91
|
if process == "aap" and %w(determined in-force).include? s.text
|
36
|
-
|
92
|
+
@log.add("Document Attributes", nil, "Recommendation Status #{s.text} inconsistent with AAP")
|
37
93
|
end
|
38
94
|
if process == "tap" and !%w(determined in-force).include? s.text
|
39
|
-
|
95
|
+
@log.add("Document Attributes", nil, "Recommendation Status #{s.text} inconsistent with TAP")
|
40
96
|
end
|
41
97
|
end
|
42
98
|
|
43
99
|
def itu_identifier_validate(xmldoc)
|
44
100
|
s = xmldoc.xpath("//bibdata/docidentifier[@type = 'ITU']").each do |x|
|
45
101
|
/^ITU-[RTF] [AD-VX-Z]\.[0-9]+$/.match(x.text) or
|
46
|
-
|
102
|
+
@log.add("Style", nil, "#{x.text} does not match ITU document identifier conventions")
|
47
103
|
end
|
48
104
|
end
|
49
105
|
|
106
|
+
def section_validate(doc)
|
107
|
+
super
|
108
|
+
section_check(doc.root)
|
109
|
+
end
|
110
|
+
|
111
|
+
# Editing Guidelines 7.2, 7.3
|
112
|
+
def section_check(xmldoc)
|
113
|
+
xmldoc.at("//bibdata/abstract") or
|
114
|
+
@log.add("Style", nil, "No Summary has been provided")
|
115
|
+
xmldoc.at("//bibdata/keywords") or
|
116
|
+
@log.add("Style", nil, "No Keywords have been provided")
|
117
|
+
end
|
118
|
+
|
50
119
|
def termdef_style(xmldoc)
|
51
120
|
xmldoc.xpath("//term").each do |t|
|
52
121
|
para = t.at("./definition") || return
|
53
122
|
term = t.at("./preferred").text
|
54
|
-
termdef_warn(term, /^[A-Z][a-z]+/, term, "term is not lowercase")
|
55
|
-
termdef_warn(para.text, /^[a-z]/, term, "term definition does not start with capital")
|
56
|
-
termdef_warn(para.text, /[^.]$/, term, "term definition does not end with period")
|
123
|
+
termdef_warn(term, /^[A-Z][a-z]+/, t, term, "term is not lowercase")
|
124
|
+
termdef_warn(para.text, /^[a-z]/, t, term, "term definition does not start with capital")
|
125
|
+
termdef_warn(para.text, /[^.]$/, t, term, "term definition does not end with period")
|
57
126
|
end
|
58
127
|
end
|
59
128
|
|
60
|
-
def termdef_warn(text, re, term, msg)
|
61
|
-
re.match(text) &&
|
129
|
+
def termdef_warn(text, re, t, term, msg)
|
130
|
+
re.match(text) && @log.add("Style", t, "#{term}: #{msg}")
|
62
131
|
end
|
63
132
|
end
|
64
133
|
end
|
@@ -47,12 +47,6 @@ module IsoDoc
|
|
47
47
|
l10n("#{@note_lbl} #{n[:label]} – ")
|
48
48
|
end
|
49
49
|
|
50
|
-
def formula_where(dl, out)
|
51
|
-
return unless dl
|
52
|
-
out.p { |p| p << l10n("#{@where_lbl}:") }
|
53
|
-
parse(dl, out)
|
54
|
-
end
|
55
|
-
|
56
50
|
def prefix_container(container, linkend, _target)
|
57
51
|
l10n("#{linkend} #{@labels["in"]} #{anchor(container, :xref)}")
|
58
52
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<div class="document-stage-band" id=
|
1
|
+
<div class="document-stage-band" id="{{ stage | downcase | replace: ' ', '-' }}-band">
|
2
2
|
<p class="document-stage">{{ stage }}</p>
|
3
3
|
</div>
|
4
4
|
|
5
|
-
<div class="document-type-band" id=
|
5
|
+
<div class="document-type-band" id="{{ doctype | downcase | replace: ' ', '-' }}-band">
|
6
6
|
<p class="document-type">ITU {{ doctype }}</p>
|
7
7
|
</div>
|
8
8
|
|
@@ -714,6 +714,10 @@ p.Formula, li.Formula, div.Formula
|
|
714
714
|
mso-fareast-font-family:$bodyfont;
|
715
715
|
mso-bidi-font-family:$bodyfont;
|
716
716
|
mso-ansi-language:EN-GB;}
|
717
|
+
table.formula_dl {
|
718
|
+
margin-left:1.4cm;
|
719
|
+
margin-right:1.4cm;
|
720
|
+
}
|
717
721
|
/* definition list */
|
718
722
|
p.enumlev1, li.enumlev1, div.enumlev1
|
719
723
|
{mso-style-name:enumlev1;
|
data/lib/isodoc/itu/i18n-en.yaml
CHANGED
data/lib/isodoc/itu/metadata.rb
CHANGED
data/lib/isodoc/itu/ref.rb
CHANGED
@@ -11,9 +11,6 @@ module IsoDoc
|
|
11
11
|
out.div do |div|
|
12
12
|
num = num + 1
|
13
13
|
clause_name(num, @normref_lbl, div, nil)
|
14
|
-
f.elements.reject do |e|
|
15
|
-
%w(reference title bibitem note).include? e.name
|
16
|
-
end.each { |e| parse(e, div) }
|
17
14
|
biblio_list(f, div, false)
|
18
15
|
end
|
19
16
|
num
|
@@ -65,13 +62,21 @@ module IsoDoc
|
|
65
62
|
|
66
63
|
def render_identifiers(ids)
|
67
64
|
ids.map do |id|
|
68
|
-
|
69
|
-
|
70
|
-
"recommendation") + " " : "") +
|
71
|
-
docid_prefix(id["type"], id.text.sub(/^\[/, "").sub(/\]$/, ""))
|
65
|
+
id["type"] == "ITU" ? doctype_title(id) :
|
66
|
+
docid_prefix(id["type"], id.text.sub(/^\[/, "").sub(/\]$/, ""))
|
72
67
|
end.join(" | ")
|
73
68
|
end
|
74
69
|
|
70
|
+
def doctype_title(id)
|
71
|
+
type = id.parent&.at(ns("./ext/doctype"))&.text || "recommendation"
|
72
|
+
if type == "recommendation" &&
|
73
|
+
/^(?<prefix>ITU-[A-Z] [A-Z])[ .-]Sup[a-z]*\.[ ]?(?<num>\d+)$/ =~ id.text
|
74
|
+
"#{prefix}-series Recommendations – Supplement #{num}"
|
75
|
+
else
|
76
|
+
"#{titlecase(type)} #{docid_prefix(id["type"], id.text.sub(/^\[/, '').sub(/\]$/, ''))}"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
75
80
|
def reference_format_start(b, r)
|
76
81
|
id = multi_bibitem_ref_code(b)
|
77
82
|
r << render_identifiers(id)
|
data/lib/isodoc/itu/xref.rb
CHANGED
@@ -67,14 +67,15 @@ module IsoDoc
|
|
67
67
|
"-"
|
68
68
|
end
|
69
69
|
|
70
|
-
|
71
|
-
return super unless @hierarchical_assets
|
72
|
-
middle_sections = "//clause[title = 'Scope'] | "\
|
70
|
+
MIDDLE_SECTIONS = "//clause[title = 'Scope'] | "\
|
73
71
|
"//foreword | //introduction | //acknowledgements | "\
|
74
72
|
"//references[title = 'References' or title = 'references'] | "\
|
75
73
|
"//sections/terms | //preface/clause | "\
|
76
|
-
"//sections/definitions | //clause[parent::sections]"
|
77
|
-
|
74
|
+
"//sections/definitions | //clause[parent::sections]".freeze
|
75
|
+
|
76
|
+
def middle_section_asset_names(d)
|
77
|
+
return super unless @hierarchical_assets
|
78
|
+
d.xpath(ns(MIDDLE_SECTIONS)).each do |c|
|
78
79
|
hierarchical_asset_names(c, @anchors[c["id"]][:label])
|
79
80
|
end
|
80
81
|
end
|
@@ -111,6 +112,16 @@ module IsoDoc
|
|
111
112
|
t["unnumbered"])
|
112
113
|
end
|
113
114
|
end
|
115
|
+
|
116
|
+
def sequential_formula_names(clause)
|
117
|
+
clause&.first&.xpath(ns(MIDDLE_SECTIONS))&.each do |c|
|
118
|
+
if c["id"] && @anchors[c["id"]]
|
119
|
+
hierarchical_formula_names(c, @anchors[c["id"]][:label] || @anchors[c["id"]][:xref] || "???")
|
120
|
+
else
|
121
|
+
hierarchical_formula_names(c, "???")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
114
125
|
end
|
115
126
|
end
|
116
127
|
end
|
data/lib/metanorma/itu.rb
CHANGED
data/metanorma-itu.gemspec
CHANGED
@@ -38,7 +38,6 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.add_development_dependency "rubocop", "= 0.54.0"
|
39
39
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
40
40
|
spec.add_development_dependency "timecop", "~> 0.9"
|
41
|
-
spec.add_development_dependency "metanorma", "~> 0.3.0"
|
42
41
|
spec.add_development_dependency "vcr", "~> 5.0.0"
|
43
42
|
spec.add_development_dependency "webmock"
|
44
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-itu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -192,20 +192,6 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0.9'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: metanorma
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: 0.3.0
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - "~>"
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: 0.3.0
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
196
|
name: vcr
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|