isodoc 2.7.0 → 2.7.2
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/isodoc.gemspec +2 -2
- data/lib/isodoc/convert.rb +5 -3
- data/lib/isodoc/html_function/postprocess_cover.rb +6 -9
- data/lib/isodoc/i18n.rb +13 -10
- data/lib/isodoc/presentation_function/bibdata.rb +34 -31
- data/lib/isodoc/presentation_function/inline.rb +8 -5
- data/lib/isodoc/presentation_function/xrefs.rb +8 -4
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/xref/xref_gen_seq.rb +39 -34
- data/lib/isodoc/xref/xref_sect_gen.rb +6 -2
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8e11539f17ee97d00f3b2f4470b384f1caf06cb5d72b11fc408b731f071e55b
|
4
|
+
data.tar.gz: 9f45bc01cc6aa695152e0f237f281bad777eb745836c4f08880467781c722942
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0174b0cb445a70b50ccaeda366c6d843a924fa481a047eb04c6c65c127b42cf789e274270fb4a6573f10040d0830ea7370081bcf0df366055baddaf7c3d991d0
|
7
|
+
data.tar.gz: cc9cd1214a0ce46d3cc8bd34646f9c2d629c9e1ce6116e2a03fd19dbca5e1f0c07ba1e20b67a1e5b713e6bbaaf4fbe00ccaa69ed580000b161f5cacaf4158d86
|
data/isodoc.gemspec
CHANGED
@@ -28,12 +28,12 @@ Gem::Specification.new do |spec|
|
|
28
28
|
end
|
29
29
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
30
30
|
|
31
|
-
spec.add_dependency "html2doc", "~> 1.7.
|
31
|
+
spec.add_dependency "html2doc", "~> 1.7.1"
|
32
32
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
33
33
|
# spec.add_dependency "isodoc-i18n", "~> 1.1.0" # already in relaton-render and mn-requirements
|
34
34
|
spec.add_dependency "emf2svg"
|
35
35
|
spec.add_dependency "liquid", "~> 5"
|
36
|
-
spec.add_dependency "relaton-cli"
|
36
|
+
#spec.add_dependency "relaton-cli"
|
37
37
|
# spec.add_dependency "metanorma-utils", "~> 1.5.0" # already in isodoc-i18n
|
38
38
|
spec.add_dependency "mn2pdf"
|
39
39
|
spec.add_dependency "mn-requirements", "~> 0.3.4"
|
data/lib/isodoc/convert.rb
CHANGED
@@ -110,7 +110,8 @@ module IsoDoc
|
|
110
110
|
end
|
111
111
|
|
112
112
|
def preprocess_xslt(docxml)
|
113
|
-
extract_preprocess_xslt(docxml)
|
113
|
+
sheets = extract_preprocess_xslt(docxml)
|
114
|
+
sheets.each do |x|
|
114
115
|
docxml = Nokogiri::XSLT(x).transform(docxml)
|
115
116
|
end
|
116
117
|
docxml
|
@@ -131,8 +132,9 @@ module IsoDoc
|
|
131
132
|
convert_i18n_init1(docxml)
|
132
133
|
i18n_init(@lang, @script, @locale)
|
133
134
|
@reqt_models = requirements_processor
|
134
|
-
.new({ default: "default", lang: @lang, script: @script,
|
135
|
-
labels: @i18n.get,
|
135
|
+
.new({ default: "default", lang: @lang, script: @script,
|
136
|
+
locale: @locale, labels: @i18n.get,
|
137
|
+
modspecidentifierbase: @modspecidentifierbase })
|
136
138
|
end
|
137
139
|
|
138
140
|
def convert_i18n_init1(docxml)
|
@@ -136,24 +136,21 @@ module IsoDoc
|
|
136
136
|
end
|
137
137
|
|
138
138
|
def html_toc_entries(docxml, path)
|
139
|
-
|
139
|
+
headers = html_toc_entries_prep(docxml, path)
|
140
140
|
path.each_with_index.with_object([]) do |(p, i), m|
|
141
|
-
|
141
|
+
docxml.xpath(p.join(" | ")).each do |h|
|
142
142
|
m << { entry: html_toc_entry("h#{i + 1}", h),
|
143
|
-
line: h
|
143
|
+
line: headers[h["id"]] }
|
144
144
|
end
|
145
145
|
end.sort_by { |k| k[:line] }
|
146
146
|
end
|
147
147
|
|
148
148
|
def html_toc_entries_prep(docxml, path)
|
149
|
-
path.
|
150
|
-
|
149
|
+
docxml.xpath(path.join(" | "))
|
150
|
+
.each_with_index.with_object({}) do |(h, i), m|
|
151
151
|
h["id"] ||= "_#{UUIDTools::UUID.random_create}"
|
152
|
+
m[h["id"]] = i
|
152
153
|
end
|
153
|
-
end
|
154
|
-
xml = Nokogiri::XML(docxml.to_xml, &:noblanks)
|
155
|
-
xml.remove_namespaces!
|
156
|
-
xml
|
157
154
|
end
|
158
155
|
|
159
156
|
def toc_exclude_class
|
data/lib/isodoc/i18n.rb
CHANGED
@@ -7,23 +7,26 @@ module IsoDoc
|
|
7
7
|
class I18n
|
8
8
|
Hash.include Metanorma::Utils::Hash
|
9
9
|
|
10
|
-
def
|
10
|
+
def yaml_lang(lang, script)
|
11
11
|
case lang
|
12
12
|
when "en", "fr", "ru", "de", "es", "ar", "ja"
|
13
|
-
|
13
|
+
lang
|
14
14
|
when "zh"
|
15
|
-
|
16
|
-
else load_yaml2("en")
|
17
|
-
end
|
18
|
-
else
|
19
|
-
load_yaml2("en")
|
15
|
+
"#{lang}-#{script}"
|
20
16
|
end
|
21
17
|
end
|
22
18
|
|
19
|
+
def load_yaml1(lang, script)
|
20
|
+
load_yaml2(yaml_lang(lang, script))
|
21
|
+
end
|
22
|
+
|
23
23
|
def load_yaml2(str)
|
24
|
-
|
25
|
-
|
24
|
+
f = File.join(File.dirname(__FILE__),
|
25
|
+
"../isodoc-yaml/i18n-#{str}.yaml")
|
26
|
+
File.exist?(f) or
|
27
|
+
f = File.join(File.dirname(__FILE__),
|
28
|
+
"../isodoc-yaml/i18n-en.yaml")
|
29
|
+
YAML.load_file(f)
|
26
30
|
end
|
27
31
|
end
|
28
32
|
end
|
29
|
-
|
@@ -15,10 +15,10 @@ module IsoDoc
|
|
15
15
|
"</localized-strings>"
|
16
16
|
end
|
17
17
|
|
18
|
-
def extension_insert(
|
19
|
-
ins =
|
20
|
-
|
21
|
-
|
18
|
+
def extension_insert(xml, path = [])
|
19
|
+
ins = xml.at(ns("//metanorma-extension")) ||
|
20
|
+
xml.at(ns("//bibdata"))&.after("<metanorma-extension/>")&.next_element ||
|
21
|
+
xml.root.elements.first.before("<metanorma-extension/>").previous_element
|
22
22
|
path.each do |n|
|
23
23
|
ins = ins.at(ns("./#{n}")) || ins.add_child("<#{n}/>").first
|
24
24
|
end
|
@@ -39,24 +39,24 @@ module IsoDoc
|
|
39
39
|
@output_formats.empty? and return nil
|
40
40
|
@output_formats.each_key.with_object([]) do |k, m|
|
41
41
|
m << <<~XSLT
|
42
|
-
<preprocess-xslt format="#{k}">
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
</preprocess-xslt>
|
42
|
+
<preprocess-xslt format="#{k}">
|
43
|
+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
|
44
|
+
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
|
45
|
+
<xsl:strip-space elements="*"/>
|
46
|
+
<xsl:template match="@* | node()">
|
47
|
+
<xsl:copy>
|
48
|
+
<xsl:apply-templates select="@* | node()"/>
|
49
|
+
</xsl:copy>
|
50
|
+
</xsl:template>
|
51
|
+
<xsl:template match="*[local-name() = 'passthrough']">
|
52
|
+
<xsl:if test="contains(@formats,',#{k},')"> <!-- delimited -->
|
53
|
+
<xsl:copy>
|
54
|
+
<xsl:apply-templates select="@* | node()"/>
|
55
|
+
</xsl:copy>
|
56
|
+
</xsl:if>
|
57
|
+
</xsl:template>
|
58
|
+
</xsl:stylesheet>
|
59
|
+
</preprocess-xslt>
|
60
60
|
XSLT
|
61
61
|
end.join("\n")
|
62
62
|
end
|
@@ -67,8 +67,7 @@ module IsoDoc
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def toc_metadata(docxml)
|
70
|
-
|
71
|
-
|
70
|
+
@tocfigures || @toctables || @tocrecommendations or return
|
72
71
|
ins = extension_insert(docxml)
|
73
72
|
@tocfigures and
|
74
73
|
ins << "<toc type='figure'><title>#{@i18n.toc_figures}</title></toc>"
|
@@ -89,17 +88,20 @@ module IsoDoc
|
|
89
88
|
end
|
90
89
|
|
91
90
|
def fonts_metadata(xmldoc)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
xmldoc.at(ns("//metanorma-extension")) || xmldoc.at(ns("//bibdata"))
|
96
|
-
CSV.parse_line(@fontist_fonts, col_sep: ";").map(&:strip).each do |f|
|
91
|
+
ins = presmeta_insert_pt(xmldoc)
|
92
|
+
@fontist_fonts and CSV.parse_line(@fontist_fonts, col_sep: ";")
|
93
|
+
.map(&:strip).reverse.each do |f|
|
97
94
|
ins.next = presmeta("fonts", f)
|
98
95
|
end
|
99
96
|
@fontlicenseagreement and
|
100
97
|
ins.next = presmeta("font-license-agreement", @fontlicenseagreement)
|
101
98
|
end
|
102
99
|
|
100
|
+
def presmeta_insert_pt(xmldoc)
|
101
|
+
xmldoc.at(ns("//presentation-metadata")) ||
|
102
|
+
xmldoc.at(ns("//metanorma-extension")) || xmldoc.at(ns("//bibdata"))
|
103
|
+
end
|
104
|
+
|
103
105
|
def presmeta(name, value)
|
104
106
|
"<presentation-metadata><name>#{name}</name><value>#{value}</value>" \
|
105
107
|
"</presentation-metadata>"
|
@@ -144,9 +146,10 @@ module IsoDoc
|
|
144
146
|
def edition_translate(bibdata)
|
145
147
|
x = bibdata.at(ns("./edition")) or return
|
146
148
|
/^\d+$/.match?(x.text) or return
|
149
|
+
@i18n.edition_ordinal or return
|
150
|
+
edn = edition_translate1(x.text.to_i) or return
|
147
151
|
tag_translate(x, @lang,
|
148
|
-
@i18n.edition_ordinal.sub(/%(Spellout|Ordinal)?/,
|
149
|
-
edition_translate1(x.text.to_i)))
|
152
|
+
@i18n.edition_ordinal.sub(/%(Spellout|Ordinal)?/, edn))
|
150
153
|
end
|
151
154
|
|
152
155
|
def edition_translate1(num)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "metanorma-utils"
|
2
|
+
require "csv"
|
2
3
|
|
3
4
|
module IsoDoc
|
4
5
|
class PresentationXMLConvert < ::IsoDoc::Convert
|
@@ -126,16 +127,18 @@ module IsoDoc
|
|
126
127
|
elem["formats"] = ",#{elem['formats']},"
|
127
128
|
end
|
128
129
|
|
129
|
-
private
|
130
|
-
|
131
130
|
def extract_custom_charsets(docxml)
|
132
|
-
docxml.xpath(ns("//presentation-metadata/custom-charset-font"))
|
133
|
-
each_with_object({}) do |
|
134
|
-
|
131
|
+
docxml.xpath(ns("//presentation-metadata/custom-charset-font"))
|
132
|
+
.each_with_object({}) do |line, m|
|
133
|
+
line.text.split(",").map(&:strip).each do |x|
|
134
|
+
kv = x.split(":", 2)
|
135
135
|
m[kv[0]] = kv[1]
|
136
136
|
end
|
137
|
+
end
|
137
138
|
end
|
138
139
|
|
140
|
+
private
|
141
|
+
|
139
142
|
def found_matching_variant_sibling(node)
|
140
143
|
prev = node.xpath("./preceding-sibling::xmlns:variant")
|
141
144
|
foll = node.xpath("./following-sibling::xmlns:variant")
|
@@ -1,7 +1,12 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
class PresentationXMLConvert < ::IsoDoc::Convert
|
3
|
-
def prefix_container(container, linkend, node,
|
4
|
-
|
3
|
+
def prefix_container(container, linkend, node, target)
|
4
|
+
prefix_container?(container, node) or return linkend
|
5
|
+
container_container = @xrefs.anchor(container, :container, false)
|
6
|
+
container_label =
|
7
|
+
prefix_container(container_container, anchor_xref(node, container),
|
8
|
+
node, target)
|
9
|
+
l10n(@i18n.nested_xref.sub("%1", container_label)
|
5
10
|
.sub("%2", linkend))
|
6
11
|
end
|
7
12
|
|
@@ -31,8 +36,7 @@ module IsoDoc
|
|
31
36
|
def anchor_linkend1(node)
|
32
37
|
linkend = anchor_xref(node, node["target"])
|
33
38
|
container = @xrefs.anchor(node["target"], :container, false)
|
34
|
-
prefix_container
|
35
|
-
linkend = prefix_container(container, linkend, node, node["target"])
|
39
|
+
linkend = prefix_container(container, linkend, node, node["target"])
|
36
40
|
capitalise_xref(node, linkend, anchor_value(node["target"]))
|
37
41
|
end
|
38
42
|
|
data/lib/isodoc/version.rb
CHANGED
@@ -24,24 +24,25 @@ module IsoDoc
|
|
24
24
|
.//figure[not(@class)] | .//figure[@class = 'pseudocode'] | .//sourcecode[not(ancestor::example)]
|
25
25
|
XPATH
|
26
26
|
|
27
|
-
def sequential_figure_names(clause)
|
27
|
+
def sequential_figure_names(clause, container: false)
|
28
28
|
c = Counter.new
|
29
29
|
j = 0
|
30
30
|
clause.xpath(ns(FIGURE_NO_CLASS)).noblank.each do |t|
|
31
31
|
j = subfigure_increment(j, c, t)
|
32
|
-
sequential_figure_body(j, c, t, "figure")
|
32
|
+
sequential_figure_body(j, c, t, "figure", container: container)
|
33
33
|
end
|
34
|
-
sequential_figure_class_names(clause)
|
34
|
+
sequential_figure_class_names(clause, container: container)
|
35
35
|
end
|
36
36
|
|
37
|
-
def sequential_figure_class_names(clause)
|
37
|
+
def sequential_figure_class_names(clause, container: false)
|
38
38
|
c = {}
|
39
39
|
j = 0
|
40
40
|
clause.xpath(ns(".//figure[@class][not(@class = 'pseudocode')]"))
|
41
41
|
.each do |t|
|
42
42
|
c[t["class"]] ||= Counter.new
|
43
43
|
j = subfigure_increment(j, c[t["class"]], t)
|
44
|
-
sequential_figure_body(j, c[t["class"]], t, t["class"]
|
44
|
+
sequential_figure_body(j, c[t["class"]], t, t["class"],
|
45
|
+
container: container)
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
@@ -50,27 +51,28 @@ module IsoDoc
|
|
50
51
|
"-#{subfignum}"
|
51
52
|
end
|
52
53
|
|
53
|
-
def sequential_figure_body(
|
54
|
+
def sequential_figure_body(subfig, counter, elem, klass, container: false)
|
54
55
|
label = counter.print
|
55
|
-
label &&= label + subfigure_label(
|
56
|
-
@anchors[
|
57
|
-
label,
|
58
|
-
|
56
|
+
label &&= label + subfigure_label(subfig)
|
57
|
+
@anchors[elem["id"]] = anchor_struct(
|
58
|
+
label, container ? elem : nil,
|
59
|
+
@labels[klass] || klass.capitalize, klass,
|
60
|
+
elem["unnumbered"]
|
59
61
|
)
|
60
62
|
end
|
61
63
|
|
62
|
-
def sequential_table_names(clause)
|
64
|
+
def sequential_table_names(clause, container: false)
|
63
65
|
c = Counter.new
|
64
66
|
clause.xpath(ns(".//table")).noblank.each do |t|
|
65
67
|
labelled_ancestor(t) and next
|
66
68
|
@anchors[t["id"]] = anchor_struct(
|
67
|
-
c.increment(t).print, nil,
|
69
|
+
c.increment(t).print, container ? t : nil,
|
68
70
|
@labels["table"], "table", t["unnumbered"]
|
69
71
|
)
|
70
72
|
end
|
71
73
|
end
|
72
74
|
|
73
|
-
def sequential_formula_names(clause)
|
75
|
+
def sequential_formula_names(clause, container: false)
|
74
76
|
c = Counter.new
|
75
77
|
clause.xpath(ns(".//formula")).noblank.each do |t|
|
76
78
|
@anchors[t["id"]] = anchor_struct(
|
@@ -91,60 +93,63 @@ module IsoDoc
|
|
91
93
|
./permission | ./requirement | ./recommendation
|
92
94
|
XPATH
|
93
95
|
|
94
|
-
def sequential_permission_names(clause)
|
96
|
+
def sequential_permission_names(clause, container: false)
|
95
97
|
c = ReqCounter.new
|
96
98
|
clause.xpath(ns(FIRST_LVL_REQ)).noblank.each do |t|
|
97
99
|
m = @reqt_models.model(t["model"])
|
98
100
|
klass, label = reqt2class_label(t, m)
|
99
101
|
id = c.increment(label, t).print
|
100
|
-
sequential_permission_body(id, t, label, klass, m
|
101
|
-
|
102
|
+
sequential_permission_body(id, t, label, klass, m,
|
103
|
+
container: container)
|
104
|
+
sequential_permission_children(t, id, container: container)
|
102
105
|
end
|
103
106
|
end
|
104
107
|
|
105
|
-
def sequential_permission_children(
|
108
|
+
def sequential_permission_children(elem, lbl, container: false)
|
106
109
|
c = ReqCounter.new
|
107
|
-
|
110
|
+
elem.xpath(ns(REQ_CHILDREN)).noblank.each do |t|
|
108
111
|
m = @reqt_models.model(t["model"])
|
109
112
|
klass, label = reqt2class_nested_label(t, m)
|
110
113
|
id = "#{lbl}#{hierfigsep}#{c.increment(label, t).print}"
|
111
|
-
sequential_permission_body(id, t, label, klass, m
|
112
|
-
|
114
|
+
sequential_permission_body(id, t, label, klass, m,
|
115
|
+
container: container)
|
116
|
+
sequential_permission_children(t, id, container: container)
|
113
117
|
end
|
114
118
|
end
|
115
119
|
|
116
|
-
def sequential_permission_body(id,
|
117
|
-
@anchors[
|
118
|
-
|
119
|
-
|
120
|
+
def sequential_permission_body(id, elem, label, klass, model, container: false)
|
121
|
+
@anchors[elem["id"]] = model.postprocess_anchor_struct(
|
122
|
+
elem, anchor_struct(id, elem,
|
123
|
+
label, klass, elem["unnumbered"])
|
120
124
|
)
|
121
|
-
model.permission_parts(
|
125
|
+
model.permission_parts(elem, id, label, klass).each do |n|
|
122
126
|
@anchors[n[:id]] = anchor_struct(n[:number], n[:elem], n[:label],
|
123
127
|
n[:klass], false)
|
124
128
|
end
|
125
129
|
end
|
126
130
|
|
127
|
-
def reqt2class_label(
|
131
|
+
def reqt2class_label(elem, model)
|
128
132
|
model.req_class_paths.each do |n|
|
129
133
|
v1 = ns("/#{n[:xpath]}").sub(%r{^/}, "")
|
130
|
-
|
134
|
+
elem.at("./self::#{v1}") and return [n[:klass], n[:label]]
|
131
135
|
end
|
132
136
|
[nil, nil]
|
133
137
|
end
|
134
138
|
|
135
|
-
def reqt2class_nested_label(
|
139
|
+
def reqt2class_nested_label(elem, model)
|
136
140
|
model.req_nested_class_paths.each do |n|
|
137
141
|
v1 = ns("/#{n[:xpath]}").sub(%r{^/}, "")
|
138
|
-
|
142
|
+
elem.at("./self::#{v1}") and return [n[:klass], n[:label]]
|
139
143
|
end
|
140
144
|
[nil, nil]
|
141
145
|
end
|
142
146
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
147
|
+
# container makes numbering be prefixed with the parent clause reference
|
148
|
+
def sequential_asset_names(clause, container: false)
|
149
|
+
sequential_table_names(clause, container: container)
|
150
|
+
sequential_figure_names(clause, container: container)
|
151
|
+
sequential_formula_names(clause, container: container)
|
152
|
+
sequential_permission_names(clause, container: container)
|
148
153
|
end
|
149
154
|
|
150
155
|
def hierarchical_figure_names(clause, num)
|
@@ -129,6 +129,10 @@ module IsoDoc
|
|
129
129
|
|
130
130
|
def back_names(clause)
|
131
131
|
unnumbered_names(clause)
|
132
|
+
sequential_asset_names(
|
133
|
+
Nokogiri::XML::NodeSet.new(clause.document, [clause]),
|
134
|
+
container: true,
|
135
|
+
)
|
132
136
|
end
|
133
137
|
|
134
138
|
def unnumbered_names(clause)
|
@@ -237,8 +241,8 @@ module IsoDoc
|
|
237
241
|
def reference_names(ref)
|
238
242
|
ids = @klass.bibitem_ref_code(ref)
|
239
243
|
identifiers = @klass.render_identifier(ids)
|
240
|
-
reference = @klass
|
241
|
-
docid_l10n(identifiers[:metanorma] || identifiers[:sdo] ||
|
244
|
+
reference = @klass
|
245
|
+
.docid_l10n(identifiers[:metanorma] || identifiers[:sdo] ||
|
242
246
|
identifiers[:ordinal] || identifiers[:doi])
|
243
247
|
@anchors[ref["id"]] = { xref: reference }
|
244
248
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isodoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: html2doc
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.7.
|
19
|
+
version: 1.7.1
|
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: 1.7.
|
26
|
+
version: 1.7.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: htmlentities
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '5'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: relaton-cli
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: mn2pdf
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|