isodoc 0.9.12 → 0.9.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -7
- data/lib/isodoc/function/inline.rb +5 -3
- data/lib/isodoc/function/terms.rb +2 -1
- data/lib/isodoc/function/to_word_html.rb +54 -10
- data/lib/isodoc/function/xref_sect_gen.rb +1 -1
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/body.rb +17 -3
- data/spec/isodoc/blocks_spec.rb +7 -3
- data/spec/isodoc/inline_spec.rb +26 -0
- data/spec/spec_helper.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 945e78a0cc8b1efc187b862f368b0ce1290e613bb6fda7a66c66aac003c7431d
|
4
|
+
data.tar.gz: 59f446c8cd4d8e2a82292c22d154de3dcd9f398086f9f33f8455a2dc62f027b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bddacabfb2f52f3200d338b7c7fae3f5497df524a87e49fe7623785dd9acd468ac78d77b62e968c090ef40b12f7faae92a67367326e06c7c66ef2aa4217b09f
|
7
|
+
data.tar.gz: 6d70b11d7058cfa38d9d467853003e3ccf994591969c81f38092490aa2e1399e1a2e091e2b1738e1cf89e62163916fa9b8d3be94c0c2595d8c099987764dd16b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
isodoc (0.9.
|
4
|
+
isodoc (0.9.13)
|
5
5
|
asciimath
|
6
6
|
html2doc (~> 0.8.6)
|
7
7
|
htmlentities (~> 4.3.4)
|
@@ -67,10 +67,10 @@ GEM
|
|
67
67
|
mime-types (3.2.2)
|
68
68
|
mime-types-data (~> 3.2015)
|
69
69
|
mime-types-data (3.2018.0812)
|
70
|
-
mini_portile2 (2.
|
70
|
+
mini_portile2 (2.4.0)
|
71
71
|
nenv (0.3.0)
|
72
|
-
nokogiri (1.
|
73
|
-
mini_portile2 (~> 2.
|
72
|
+
nokogiri (1.9.1)
|
73
|
+
mini_portile2 (~> 2.4.0)
|
74
74
|
notiffany (0.1.1)
|
75
75
|
nenv (~> 0.1)
|
76
76
|
shellany (~> 0.0)
|
@@ -84,8 +84,8 @@ GEM
|
|
84
84
|
rainbow (3.0.0)
|
85
85
|
rake (12.3.2)
|
86
86
|
rb-fsevent (0.10.3)
|
87
|
-
rb-inotify (0.
|
88
|
-
ffi (
|
87
|
+
rb-inotify (0.10.0)
|
88
|
+
ffi (~> 1.0)
|
89
89
|
roman-numerals (0.3.0)
|
90
90
|
rspec (3.8.0)
|
91
91
|
rspec-core (~> 3.8.0)
|
@@ -146,4 +146,4 @@ DEPENDENCIES
|
|
146
146
|
timecop (~> 0.9)
|
147
147
|
|
148
148
|
BUNDLED WITH
|
149
|
-
1.17.
|
149
|
+
1.17.2
|
@@ -42,11 +42,13 @@ module IsoDoc::Function
|
|
42
42
|
def get_linkend(node)
|
43
43
|
link = anchor_linkend(node, docid_l10n(node["target"] || node["citeas"]))
|
44
44
|
link += eref_localities(node.xpath(ns("./locality")), link)
|
45
|
-
text = node.children.select { |c| c.text? && !c.text.empty? }
|
46
|
-
link = text.join(" ") unless text.nil? || text.empty?
|
45
|
+
#text = node.children.select { |c| c.text? && !c.text.empty? }
|
46
|
+
#link = text.join(" ") unless text.nil? || text.empty?
|
47
|
+
contents = node.children.select { |c| c.name != "locality" }
|
48
|
+
return link if contents.nil? || contents.empty?
|
49
|
+
Nokogiri::XML::NodeSet.new(node.document, contents).to_xml
|
47
50
|
# so not <origin bibitemid="ISO7301" citeas="ISO 7301">
|
48
51
|
# <locality type="section"><reference>3.1</reference></locality></origin>
|
49
|
-
link
|
50
52
|
end
|
51
53
|
|
52
54
|
def xref_parse(node, out)
|
@@ -43,7 +43,8 @@ module IsoDoc::Function
|
|
43
43
|
out.div **{ class: "Note" } do |div|
|
44
44
|
first = node.first_element_child
|
45
45
|
div.p do |p|
|
46
|
-
|
46
|
+
anchor = get_anchors[node['id']]
|
47
|
+
p << "#{anchor&.dig(:label) || '???'}: "
|
47
48
|
para_then_remainder(first, node, p, div)
|
48
49
|
end
|
49
50
|
end
|
@@ -117,14 +117,16 @@ module IsoDoc::Function
|
|
117
117
|
|
118
118
|
def smallcap_parse(node, xml)
|
119
119
|
xml.span **{ style: "font-variant:small-caps;" } do |s|
|
120
|
-
s << node.inner_html
|
120
|
+
#s << node.inner_html
|
121
|
+
node.children.each { |n| parse(n, s) }
|
121
122
|
end
|
122
123
|
end
|
123
124
|
|
124
125
|
def text_parse(node, out)
|
125
126
|
return if node.nil? || node.text.nil?
|
126
127
|
text = node.to_s
|
127
|
-
text = text.gsub("\n", "<br/>").gsub(" ", "
|
128
|
+
text = text.gsub("\n", "<br/>").gsub("<br/> ", "<br/> ").
|
129
|
+
gsub(/[ ](?=[ ])/, " ") if in_sourcecode
|
128
130
|
out << text
|
129
131
|
end
|
130
132
|
|
@@ -134,7 +136,44 @@ module IsoDoc::Function
|
|
134
136
|
|
135
137
|
def keyword_parse(node, out)
|
136
138
|
out.span **{ class: "keyword" } do |s|
|
137
|
-
s << node.inner_html
|
139
|
+
#s << node.inner_html
|
140
|
+
node.children.each { |n| parse(n, s) }
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def em_parse(node, out)
|
145
|
+
out.i do |e|
|
146
|
+
node.children.each { |n| parse(n, e) }
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def strong_parse(node, out)
|
151
|
+
out.b do |e|
|
152
|
+
node.children.each { |n| parse(n, e) }
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def sup_parse(node, out)
|
157
|
+
out.sup do |e|
|
158
|
+
node.children.each { |n| parse(n, e) }
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def sub_parse(node, out)
|
163
|
+
out.sub do |e|
|
164
|
+
node.children.each { |n| parse(n, e) }
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
def tt_parse(node, out)
|
169
|
+
out.tt do |e|
|
170
|
+
node.children.each { |n| parse(n, e) }
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def strike_parse(node, out)
|
175
|
+
out.s do |e|
|
176
|
+
node.children.each { |n| parse(n, e) }
|
138
177
|
end
|
139
178
|
end
|
140
179
|
|
@@ -143,12 +182,18 @@ module IsoDoc::Function
|
|
143
182
|
text_parse(node, out)
|
144
183
|
else
|
145
184
|
case node.name
|
146
|
-
when "em" then out.i { |e| e << node.inner_html }
|
147
|
-
when "strong" then out.b { |e| e << node.inner_html }
|
148
|
-
when "sup" then out.sup { |e| e << node.inner_html }
|
149
|
-
when "sub" then out.sub { |e| e << node.inner_html }
|
150
|
-
when "tt" then out.tt { |e| e << node.inner_html }
|
151
|
-
when "strike" then out.s { |e| e << node.inner_html }
|
185
|
+
#when "em" then out.i { |e| e << node.inner_html }
|
186
|
+
#when "strong" then out.b { |e| e << node.inner_html }
|
187
|
+
#when "sup" then out.sup { |e| e << node.inner_html }
|
188
|
+
#when "sub" then out.sub { |e| e << node.inner_html }
|
189
|
+
#when "tt" then out.tt { |e| e << node.inner_html }
|
190
|
+
#when "strike" then out.s { |e| e << node.inner_html }
|
191
|
+
when "em" then em_parse(node, out)
|
192
|
+
when "strong" then strong_parse(node, out)
|
193
|
+
when "sup" then sup_parse(node, out)
|
194
|
+
when "sub" then sub_parse(node, out)
|
195
|
+
when "tt" then tt_parse(node, out)
|
196
|
+
when "strike" then strike_parse(node, out)
|
152
197
|
when "keyword" then keyword_parse(node, out)
|
153
198
|
when "smallcap" then smallcap_parse(node, out)
|
154
199
|
when "br" then out.br
|
@@ -158,7 +203,6 @@ module IsoDoc::Function
|
|
158
203
|
when "callout" then callout_parse(node, out)
|
159
204
|
when "stem" then stem_parse(node, out)
|
160
205
|
when "clause" then clause_parse(node, out)
|
161
|
-
# when "subclause" then clause_parse(node, out)
|
162
206
|
#when "appendix" then clause_parse(node, out)
|
163
207
|
when "xref" then xref_parse(node, out)
|
164
208
|
when "eref" then eref_parse(node, out)
|
@@ -10,7 +10,7 @@ module IsoDoc::Function
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def initial_anchor_names(d)
|
13
|
-
preface_names(d.at(ns("//abstract")))
|
13
|
+
preface_names(d.at(ns("//preface/abstract")))
|
14
14
|
preface_names(d.at(ns("//foreword")))
|
15
15
|
preface_names(d.at(ns("//introduction")))
|
16
16
|
sequential_asset_names(d.xpath(ns("//preface/abstract | //foreword | //introduction")))
|
data/lib/isodoc/version.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module IsoDoc::WordFunction
|
2
2
|
module Body
|
3
3
|
def make_body1(body, _docxml)
|
4
|
+
FileUtils.rm_rf tmpimagedir
|
5
|
+
FileUtils.mkdir tmpimagedir
|
4
6
|
body.div **{ class: "WordSection1" } do |div1|
|
5
7
|
div1.p { |p| p << " " } # placeholder
|
6
8
|
end
|
@@ -172,7 +174,8 @@ module IsoDoc::WordFunction
|
|
172
174
|
out.div **{ class: "Note" } do |div|
|
173
175
|
first = node.first_element_child
|
174
176
|
div.p **{ class: "Note" } do |p|
|
175
|
-
|
177
|
+
anchor = get_anchors[node['id']]
|
178
|
+
p << "#{anchor&.dig(:label) || '???'}: "
|
176
179
|
para_then_remainder(first, node, p, div)
|
177
180
|
end
|
178
181
|
end
|
@@ -191,8 +194,19 @@ module IsoDoc::WordFunction
|
|
191
194
|
attrs
|
192
195
|
end
|
193
196
|
|
197
|
+
def imgsrc(uri)
|
198
|
+
return uri unless %r{^data:image/}.match uri
|
199
|
+
%r{^data:image/(?<imgtype>[^;]+);base64,(?<imgdata>.+)$} =~ uri
|
200
|
+
uuid = UUIDTools::UUID.random_create.to_s
|
201
|
+
fname = "#{uuid}.#{imgtype}"
|
202
|
+
new_file = File.join(tmpimagedir, fname)
|
203
|
+
@files_to_delete << new_file
|
204
|
+
File.open(new_file, "wb") { |f| f.write(Base64.strict_decode64(imgdata)) }
|
205
|
+
File.join(rel_tmpimagedir, fname)
|
206
|
+
end
|
207
|
+
|
194
208
|
def image_parse(node, out, caption)
|
195
|
-
attrs = { src: node["src"],
|
209
|
+
attrs = { src: imgsrc(node["src"]),
|
196
210
|
height: node["height"],
|
197
211
|
width: node["width"] }
|
198
212
|
if node["height"] == "auto" || node["width"] == "auto"
|
@@ -206,7 +220,7 @@ module IsoDoc::WordFunction
|
|
206
220
|
def xref_parse(node, out)
|
207
221
|
target = /#/.match(node["target"]) ? node["target"].sub(/#/, ".doc#") :
|
208
222
|
"##{node["target"]}"
|
209
|
-
|
223
|
+
out.a(**{ "href": target }) { |l| l << get_linkend(node) }
|
210
224
|
end
|
211
225
|
end
|
212
226
|
end
|
data/spec/isodoc/blocks_spec.rb
CHANGED
@@ -230,6 +230,7 @@ INPUT
|
|
230
230
|
<name>Split-it-right <em>sample</em> divider</name>
|
231
231
|
<image src="rice_images/rice_image1.png" height="20" width="30" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" imagetype="PNG"/>
|
232
232
|
<image src="rice_images/rice_image1.png" height="20" width="auto" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" imagetype="PNG"/>
|
233
|
+
<image src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" height="20" width="auto" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" imagetype="PNG"/>
|
233
234
|
<fn reference="a">
|
234
235
|
<p id="_ef2c85b8-5a5a-4ecd-a1e6-92acefaaa852">The time <stem type="AsciiMath">t_90</stem> was estimated to be 18,2 min for this example.</p>
|
235
236
|
</fn>
|
@@ -253,6 +254,7 @@ B</pre>
|
|
253
254
|
|
254
255
|
<img src="rice_images/rice_image1.png" height="20" width="30"/>
|
255
256
|
<img src="rice_images/rice_image1.png" height="20" width="auto"/>
|
257
|
+
<img src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" height="20" width="auto"/>
|
256
258
|
<a href="#_" class="TableFootnoteRef">a</a><aside class="footnote"><div id="fn:_"><a id="_" class="TableFootnoteRef">a  </a>
|
257
259
|
<p id="_">The time <span class="stem">(#(t_90)#)</span> was estimated to be 18,2 min for this example.</p>
|
258
260
|
</div></aside>
|
@@ -278,6 +280,7 @@ B</pre>
|
|
278
280
|
<name>Split-it-right sample divider</name>
|
279
281
|
<image src="rice_images/rice_image1.png" height="20" width="30" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" imagetype="PNG"/>
|
280
282
|
<image src="rice_images/rice_image1.png" height="20" width="auto" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" imagetype="PNG"/>
|
283
|
+
<image src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" height="20" width="auto" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" imagetype="PNG"/>
|
281
284
|
<fn reference="a">
|
282
285
|
<p id="_ef2c85b8-5a5a-4ecd-a1e6-92acefaaa852">The time <stem type="AsciiMath">t_90</stem> was estimated to be 18,2 min for this example.</p>
|
283
286
|
</fn>
|
@@ -308,6 +311,7 @@ B</pre>
|
|
308
311
|
|
309
312
|
<img src="rice_images/rice_image1.png" height="20" width="30"/>
|
310
313
|
<img src="rice_images/rice_image1.png"/>
|
314
|
+
<img src="test_images/_.gif"/>
|
311
315
|
<a href="#_" class="TableFootnoteRef">a</a><aside><div id="ftn_"><a id="_" class="TableFootnoteRef">a<span style="mso-tab-count:1">  </span></a>
|
312
316
|
<p id="_">The time <span class="stem">(#(t_90)#)</span> was estimated to be 18,2 min for this example.</p>
|
313
317
|
</div></aside>
|
@@ -416,7 +420,7 @@ B</pre>
|
|
416
420
|
<br/>
|
417
421
|
<div>
|
418
422
|
<h1 class="ForewordTitle">Foreword</h1>
|
419
|
-
<p id="samplecode" class="Sourcecode"><br/>   
|
423
|
+
<p id="samplecode" class="Sourcecode"><br/>    <br/>  puts x<br/><p class="FigureTitle" align="center">Ruby <i>code</i></p></p>
|
420
424
|
</div>
|
421
425
|
<p class="zzSTDTitle1"/>
|
422
426
|
</div>
|
@@ -440,7 +444,7 @@ B</pre>
|
|
440
444
|
<br/>
|
441
445
|
<div>
|
442
446
|
<h1 class="ForewordTitle">Foreword</h1>
|
443
|
-
<p id="samplecode" class="Sourcecode"><br/>   
|
447
|
+
<p id="samplecode" class="Sourcecode"><br/>    <br/>  <xml><br/><p class="FigureTitle" align="center">XML code</p></p>
|
444
448
|
</div>
|
445
449
|
<p class="zzSTDTitle1"/>
|
446
450
|
</div>
|
@@ -468,7 +472,7 @@ B</pre>
|
|
468
472
|
<br/>
|
469
473
|
<div>
|
470
474
|
<h1 class="ForewordTitle">Foreword</h1>
|
471
|
-
<p id="_" class="Sourcecode">puts
|
475
|
+
<p id="_" class="Sourcecode">puts "Hello, world." <1><br/>   %w{a b c}.each do |x|<br/>     puts x <2><br/>   end<span class="zzMoveToFollowing"><1> </span>
|
472
476
|
<p class="Sourcecode" id="_">This is one callout</p>
|
473
477
|
<span class="zzMoveToFollowing"><2> </span>
|
474
478
|
<p class="Sourcecode" id="_">This is another callout</p>
|
data/spec/isodoc/inline_spec.rb
CHANGED
@@ -31,6 +31,32 @@ RSpec.describe IsoDoc do
|
|
31
31
|
OUTPUT
|
32
32
|
end
|
33
33
|
|
34
|
+
it "processes embedded inline formatting" do
|
35
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
36
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
37
|
+
<preface><foreword>
|
38
|
+
<p>
|
39
|
+
<em><strong><</strong></em> <tt><link target="B"/></tt> <xref target="_http_1_1">Requirement <tt>/req/core/http</tt></xref> <eref type="inline" bibitemid="ISO712" citeas="ISO 712">Requirement <tt>/req/core/http</tt></eref> <eref type="inline" bibitemid="ISO712" citeas="ISO 712"><locality type="section"><referenceFrom>3.1</referenceFrom></locality></eref>
|
40
|
+
</p>
|
41
|
+
</foreword></preface>
|
42
|
+
<sections>
|
43
|
+
</iso-standard>
|
44
|
+
INPUT
|
45
|
+
#{HTML_HDR}
|
46
|
+
<br/>
|
47
|
+
<div>
|
48
|
+
<h1 class="ForewordTitle">Foreword</h1>
|
49
|
+
<p>
|
50
|
+
<i><b><</b></i> <tt><a href="B">B</a></tt> <a href="#_http_1_1">Requirement <tt>/req/core/http</tt></a> <a href="#ISO712">Requirement <tt>/req/core/http</tt></a> <a href="#ISO712">ISO 712, Section 3.1</a>
|
51
|
+
</p>
|
52
|
+
</div>
|
53
|
+
<p class="zzSTDTitle1"/>
|
54
|
+
</div>
|
55
|
+
</body>
|
56
|
+
</html>
|
57
|
+
OUTPUT
|
58
|
+
end
|
59
|
+
|
34
60
|
it "processes links" do
|
35
61
|
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
36
62
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
data/spec/spec_helper.rb
CHANGED
@@ -25,7 +25,8 @@ def strip_guid(x)
|
|
25
25
|
gsub(%r( href="#[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' href="#_"').
|
26
26
|
gsub(%r( id="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="_"').
|
27
27
|
gsub(%r( id="ftn[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="ftn_"').
|
28
|
-
gsub(%r( id="fn:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="fn:_"')
|
28
|
+
gsub(%r( id="fn:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="fn:_"').
|
29
|
+
gsub(%r[ src="([^/]+)/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.], ' src="\\1/_.')
|
29
30
|
end
|
30
31
|
|
31
32
|
HTML_HDR = <<~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: 0.9.
|
4
|
+
version: 0.9.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciimath
|