schizm 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/schizm/chunk.rb +9 -9
- data/lib/schizm/env.rb +11 -11
- data/lib/schizm/markup.rb +8 -0
- data/lib/schizm/parse.rb +57 -50
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74bc927ef6f3af9381ef7897d35b00d805927aa8
|
4
|
+
data.tar.gz: 08908c377f6f0868cdeb479a80e3847d252c6ef8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2bac1ac664e4c772e1a313d5f0eb718cd689fe3f388fd44874f87916daf098789dbb5b2fc7be7ee8a8f8de0b0692d7134a4d9042030ef808afae52331f63338
|
7
|
+
data.tar.gz: 76e248942d8ee1806ad00897cde958c003b94031c0e583a79a4e06b72ab45aa3734b74d1a37405526e956ea662e8c55433c83d9f4acc9a3b1a5d97cc848d0f9d
|
data/lib/schizm/chunk.rb
CHANGED
@@ -34,8 +34,8 @@ module Schizm
|
|
34
34
|
# Structure to resolve chunks of source code.
|
35
35
|
class Chunk
|
36
36
|
|
37
|
-
def initialize
|
38
|
-
@
|
37
|
+
def initialize filename, label
|
38
|
+
@filename = String.new filename
|
39
39
|
@label = String.new label
|
40
40
|
@share = Env.var[:share] if Env.var? :share
|
41
41
|
@target = nil
|
@@ -44,7 +44,7 @@ class Chunk
|
|
44
44
|
@params = Hash.new
|
45
45
|
end
|
46
46
|
|
47
|
-
attr_reader :
|
47
|
+
attr_reader :filename
|
48
48
|
attr_reader :label
|
49
49
|
attr_accessor :share
|
50
50
|
attr_accessor :target
|
@@ -65,12 +65,12 @@ class Chunk
|
|
65
65
|
return true
|
66
66
|
end
|
67
67
|
|
68
|
-
# Hash organizing active chunks by +@
|
68
|
+
# Hash organizing active chunks by +@filename+ and +@label+.
|
69
69
|
@@hash =
|
70
|
-
Hash.new do |hash,
|
71
|
-
hash[
|
70
|
+
Hash.new do |hash, filename|
|
71
|
+
hash[filename] =
|
72
72
|
Hash.new do |hash, label|
|
73
|
-
hash[label] = Chunk.new
|
73
|
+
hash[label] = Chunk.new filename, label
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -81,7 +81,7 @@ class Chunk
|
|
81
81
|
|
82
82
|
# Hash iteration interface.
|
83
83
|
def self.each
|
84
|
-
@@hash.each do |
|
84
|
+
@@hash.each do |filename, hash|
|
85
85
|
hash.each do |label, chunk|
|
86
86
|
yield chunk
|
87
87
|
end
|
@@ -102,7 +102,7 @@ class Chunk
|
|
102
102
|
def find label
|
103
103
|
Chunk.each do |chunk|
|
104
104
|
if chunk.label == label and
|
105
|
-
(chunk.
|
105
|
+
(chunk.filename == @filename or chunk.share?)
|
106
106
|
return chunk
|
107
107
|
end
|
108
108
|
end
|
data/lib/schizm/env.rb
CHANGED
@@ -449,8 +449,8 @@ SASS
|
|
449
449
|
doc_root = var[:output_doc]
|
450
450
|
src_root = var[:output_src]
|
451
451
|
zrc_globs = []
|
452
|
-
zrc_globs.push File.join(zrc_root, "*.
|
453
|
-
zrc_globs.push File.join(zrc_root, "*/*.
|
452
|
+
zrc_globs.push File.join(zrc_root, "*.zm")
|
453
|
+
zrc_globs.push File.join(zrc_root, "*/*.zm")
|
454
454
|
zrc_paths = Dir.glob zrc_globs
|
455
455
|
raise "No input files." if zrc_paths.empty?
|
456
456
|
delete doc_root if var? :clean_doc
|
@@ -458,16 +458,16 @@ SASS
|
|
458
458
|
blaze doc_root
|
459
459
|
blaze src_root
|
460
460
|
zrc_paths.each do |path|
|
461
|
-
|
462
|
-
|
461
|
+
filename = path_from zrc_root, path
|
462
|
+
filename = File.join doc_root, filename.chomp(".zm").concat(".html")
|
463
463
|
input = File.read path
|
464
|
-
Parse.hash[
|
465
|
-
Parse.page_elems
|
464
|
+
Parse.hash[filename] =
|
465
|
+
Parse.page_elems filename, input
|
466
466
|
end
|
467
467
|
unless Env.var? :only_src
|
468
|
-
Parse.hash.each do |
|
469
|
-
blaze
|
470
|
-
write
|
468
|
+
Parse.hash.each do |filename, parse|
|
469
|
+
blaze filename
|
470
|
+
write filename, <<PARSE
|
471
471
|
---
|
472
472
|
layout: schizm
|
473
473
|
author: "#{author}"
|
@@ -482,8 +482,8 @@ PARSE
|
|
482
482
|
unless Env.var? :only_doc
|
483
483
|
Chunk.each do |chunk|
|
484
484
|
if chunk.target?
|
485
|
-
blaze
|
486
|
-
write
|
485
|
+
blaze filename = File.join(src_root, chunk.target)
|
486
|
+
write filename, chunk
|
487
487
|
end
|
488
488
|
end
|
489
489
|
end
|
data/lib/schizm/markup.rb
CHANGED
@@ -41,23 +41,28 @@ class Markup
|
|
41
41
|
attr_accessor :attrs
|
42
42
|
attr_accessor :elems
|
43
43
|
|
44
|
+
# Attribute accessor.
|
44
45
|
def [] key
|
45
46
|
return @attrs[key]
|
46
47
|
end
|
47
48
|
|
49
|
+
# Attribute accessor.
|
48
50
|
def []= key, value
|
49
51
|
return @attrs[key] = value
|
50
52
|
end
|
51
53
|
|
54
|
+
# Attribute +name+ or +nil+ if +name+ does not exist.
|
52
55
|
def get_attr name
|
53
56
|
return @attrs[name] if @attrs.has_key? name
|
54
57
|
return nil
|
55
58
|
end
|
56
59
|
|
60
|
+
# Wrapper for +@attrs.has_key?+.
|
57
61
|
def has_attr? name
|
58
62
|
return @attrs.has_key? name
|
59
63
|
end
|
60
64
|
|
65
|
+
# Add attributes from hash +pairs+.
|
61
66
|
def add_attrs pairs
|
62
67
|
pairs.each do |key, value|
|
63
68
|
@attrs[key] = value
|
@@ -65,6 +70,7 @@ class Markup
|
|
65
70
|
return self
|
66
71
|
end
|
67
72
|
|
73
|
+
# Add element(s).
|
68
74
|
def << param
|
69
75
|
case param
|
70
76
|
when nil
|
@@ -85,10 +91,12 @@ class Markup
|
|
85
91
|
return self
|
86
92
|
end
|
87
93
|
|
94
|
+
# Wrapper for +self << param+.
|
88
95
|
def add_elems param
|
89
96
|
return self << param
|
90
97
|
end
|
91
98
|
|
99
|
+
# Wrapper for +@elems.last+.
|
92
100
|
def last
|
93
101
|
return @elems.last
|
94
102
|
end
|
data/lib/schizm/parse.rb
CHANGED
@@ -38,8 +38,8 @@ module Parse
|
|
38
38
|
|
39
39
|
# Markup hash.
|
40
40
|
@@hash =
|
41
|
-
Hash.new do |hash,
|
42
|
-
hash[
|
41
|
+
Hash.new do |hash, filename|
|
42
|
+
hash[filename] = Markup.new
|
43
43
|
end
|
44
44
|
|
45
45
|
# Markup hash accessor.
|
@@ -49,8 +49,8 @@ module Parse
|
|
49
49
|
|
50
50
|
# Link hash.
|
51
51
|
@@links =
|
52
|
-
Hash.new do |hash,
|
53
|
-
hash[
|
52
|
+
Hash.new do |hash, filename|
|
53
|
+
hash[filename] =
|
54
54
|
Hash.new do |hash, entry|
|
55
55
|
hash[entry] = Hash.new
|
56
56
|
end
|
@@ -61,14 +61,16 @@ module Parse
|
|
61
61
|
return @@links
|
62
62
|
end
|
63
63
|
|
64
|
+
# Image hash.
|
64
65
|
@@images =
|
65
|
-
Hash.new do |hash,
|
66
|
-
hash[
|
66
|
+
Hash.new do |hash, filename|
|
67
|
+
hash[filename] =
|
67
68
|
Hash.new do |hash, entry|
|
68
69
|
hash[entry] = Hash.new
|
69
70
|
end
|
70
71
|
end
|
71
72
|
|
73
|
+
# Image hash accessor.
|
72
74
|
def self.images
|
73
75
|
return @@images
|
74
76
|
end
|
@@ -84,22 +86,24 @@ module Parse
|
|
84
86
|
end
|
85
87
|
end
|
86
88
|
|
89
|
+
# Chunk reference.
|
87
90
|
class ChunkRef
|
88
|
-
def initialize
|
89
|
-
@
|
91
|
+
def initialize filename, label
|
92
|
+
@filename = filename
|
90
93
|
@label = label
|
91
94
|
end
|
92
95
|
def to_s
|
93
96
|
Chunk.each do |chunk|
|
94
97
|
if chunk.label == @label and
|
95
|
-
(chunk.
|
96
|
-
return "#{Env.docs_path(@
|
98
|
+
(chunk.filename == @filename or chunk.share?)
|
99
|
+
return "#{Env.docs_path(@filename)}\##{chunk.id(1)}"
|
97
100
|
end
|
98
101
|
end
|
99
102
|
return ""
|
100
103
|
end
|
101
104
|
end
|
102
105
|
|
106
|
+
# Block reference.
|
103
107
|
class BlockRef
|
104
108
|
def initialize chunk, index
|
105
109
|
@chunk = chunk
|
@@ -108,11 +112,12 @@ module Parse
|
|
108
112
|
def to_s
|
109
113
|
return "" if @index < 1
|
110
114
|
return "" if @index > @chunk.blocks.size
|
111
|
-
return "#{Env.docs_path(@chunk.
|
115
|
+
return "#{Env.docs_path(@chunk.filename)}\##{@chunk.id(@index)}"
|
112
116
|
end
|
113
117
|
end
|
114
118
|
|
115
|
-
|
119
|
+
# Parse line elements.
|
120
|
+
def self.line_elems filename, input
|
116
121
|
elems = Markup.new
|
117
122
|
sscan = StringScanner.new input.strip
|
118
123
|
max_glyph = nil
|
@@ -156,18 +161,18 @@ module Parse
|
|
156
161
|
end
|
157
162
|
Markup.new("a")
|
158
163
|
.add_attrs(attrs)
|
159
|
-
.add_elems(line_elems(
|
164
|
+
.add_elems(line_elems(filename, text))
|
160
165
|
when sscan.skip(LINK_REF_BRACKS)
|
161
166
|
text =
|
162
167
|
name = String.new(sscan[1]).unescape("]")
|
163
168
|
name = String.new(sscan[2]).unescape("]") if sscan[2]
|
164
169
|
attrs = Hash.new
|
165
170
|
attrs["target"] = "_blank"
|
166
|
-
attrs["title"] = HashAttr.new @@links[
|
167
|
-
attrs["href"] = HashAttr.new @@links[
|
171
|
+
attrs["title"] = HashAttr.new @@links[filename][name], "title"
|
172
|
+
attrs["href"] = HashAttr.new @@links[filename][name], "href"
|
168
173
|
Markup.new("a")
|
169
174
|
.add_attrs(attrs)
|
170
|
-
.add_elems(line_elems(
|
175
|
+
.add_elems(line_elems(filename, text))
|
171
176
|
when sscan.skip(CENTER_MATH)
|
172
177
|
Markup.new("script")
|
173
178
|
.add_attrs(CENTER_MATH_ATTRS)
|
@@ -178,7 +183,7 @@ module Parse
|
|
178
183
|
.add_elems(String.new(sscan[1]).slim)
|
179
184
|
when sscan.skip(INLINE_EMPH)
|
180
185
|
depth = sscan[1].size
|
181
|
-
inner = line_elems(
|
186
|
+
inner = line_elems(filename, sscan[2])
|
182
187
|
case
|
183
188
|
when depth <= 1
|
184
189
|
Markup.new("em").add_elems(inner)
|
@@ -192,13 +197,13 @@ module Parse
|
|
192
197
|
Markup.new("code")
|
193
198
|
.add_elems(String.new(sscan[1]).unescape("`").html)
|
194
199
|
when sscan.skip(INLINE_SUP)
|
195
|
-
Markup.new("sup").add_elems(line_elems(
|
200
|
+
Markup.new("sup").add_elems(line_elems(filename, sscan[1]))
|
196
201
|
when sscan.skip(INLINE_SUB)
|
197
|
-
Markup.new("sub").add_elems(line_elems(
|
202
|
+
Markup.new("sub").add_elems(line_elems(filename, sscan[1]))
|
198
203
|
when sscan.skip(INLINE_INS)
|
199
|
-
Markup.new("ins").add_elems(line_elems(
|
204
|
+
Markup.new("ins").add_elems(line_elems(filename, sscan[1]))
|
200
205
|
when sscan.skip(INLINE_DEL)
|
201
|
-
Markup.new("del").add_elems(line_elems(
|
206
|
+
Markup.new("del").add_elems(line_elems(filename, sscan[1]))
|
202
207
|
when max_glyph_match.call
|
203
208
|
max_glyph[1]
|
204
209
|
when sscan.skip(/\w+|\S/)
|
@@ -208,7 +213,8 @@ module Parse
|
|
208
213
|
return elems
|
209
214
|
end
|
210
215
|
|
211
|
-
|
216
|
+
# Parse page elements.
|
217
|
+
def self.page_elems filename, input
|
212
218
|
elems = Markup.new
|
213
219
|
sscan = StringScanner.new(
|
214
220
|
String.new(input)
|
@@ -232,7 +238,7 @@ module Parse
|
|
232
238
|
when 4 then "h4"
|
233
239
|
when 5 then "h5"
|
234
240
|
when 6 then "h6"
|
235
|
-
end).add_elems(line_elems(
|
241
|
+
end).add_elems(line_elems(filename, text))
|
236
242
|
when sscan.skip(HEADING_SETEXT)
|
237
243
|
type = String.new sscan[2]
|
238
244
|
text = String.new sscan[1]
|
@@ -243,15 +249,15 @@ module Parse
|
|
243
249
|
when "-" then "h2"
|
244
250
|
end).add_attrs("id" => slug)
|
245
251
|
.add_attrs("class" => "title")
|
246
|
-
.add_elems(line_elems(
|
252
|
+
.add_elems(line_elems(filename, text))
|
247
253
|
when sscan.skip(LINK_DEF)
|
248
254
|
name = String.new(sscan[1]).unescape("]")
|
249
255
|
sscan2 = StringScanner.new(sscan[2])
|
250
256
|
until sscan2.eos?
|
251
257
|
case
|
252
|
-
when sscan2.skip(/'((?:[^\\']*(?:\\.)*)*)'/u) then @@links[
|
253
|
-
when sscan2.skip(/"((?:[^\\"]*(?:\\.)*)*)"/u) then @@links[
|
254
|
-
when sscan2.skip(/\p{Graph}+/u) then @@links[
|
258
|
+
when sscan2.skip(/'((?:[^\\']*(?:\\.)*)*)'/u) then @@links[filename][name]["title"] = sscan2[1]
|
259
|
+
when sscan2.skip(/"((?:[^\\"]*(?:\\.)*)*)"/u) then @@links[filename][name]["title"] = sscan2[1]
|
260
|
+
when sscan2.skip(/\p{Graph}+/u) then @@links[filename][name]["href"] = sscan2[0]
|
255
261
|
when sscan2.skip(/\p{Space}+/u) then nil
|
256
262
|
end
|
257
263
|
end
|
@@ -261,9 +267,9 @@ module Parse
|
|
261
267
|
sscan2 = StringScanner.new(sscan[2])
|
262
268
|
until sscan2.eos?
|
263
269
|
case
|
264
|
-
when sscan2.skip(/w=(\d+)/u) then @@images[
|
265
|
-
when sscan2.skip(/h=(\d+)/u) then @@images[
|
266
|
-
when sscan2.skip(/\p{Graph}+/u) then @@images[
|
270
|
+
when sscan2.skip(/w=(\d+)/u) then @@images[filename][name]["width"] = sscan2[1]
|
271
|
+
when sscan2.skip(/h=(\d+)/u) then @@images[filename][name]["height"] = sscan2[1]
|
272
|
+
when sscan2.skip(/\p{Graph}+/u) then @@images[filename][name]["src"] = sscan2[0]
|
267
273
|
when sscan2.skip(/\p{Space}+/u) then nil
|
268
274
|
end
|
269
275
|
end
|
@@ -288,13 +294,13 @@ module Parse
|
|
288
294
|
name = String.new(sscan[2]).unescape("]") if sscan[2]
|
289
295
|
attrs = Hash.new
|
290
296
|
attrs["alt"] = text
|
291
|
-
attrs["src"] = HashAttr.new @@images[
|
292
|
-
attrs["width"] = HashAttr.new @@images[
|
293
|
-
attrs["height"] = HashAttr.new @@images[
|
297
|
+
attrs["src"] = HashAttr.new @@images[filename][name], "src"
|
298
|
+
attrs["width"] = HashAttr.new @@images[filename][name], "width"
|
299
|
+
attrs["height"] = HashAttr.new @@images[filename][name], "height"
|
294
300
|
Markup.new("img").add_attrs(attrs)
|
295
301
|
when sscan.skip(/^#{CHUNK_LABEL}/u)
|
296
302
|
div = nil
|
297
|
-
chunk = Chunk.hash[
|
303
|
+
chunk = Chunk.hash[filename][String.new(sscan[1]).unescape("]")]
|
298
304
|
case
|
299
305
|
when sscan.skip(/[ ]*->[ ]*(.*?)\n/u)
|
300
306
|
chunk.target = sscan[1].strip
|
@@ -323,12 +329,12 @@ module Parse
|
|
323
329
|
.add_elems([
|
324
330
|
Markup.new("div")
|
325
331
|
.add_attrs("class" => "the-chunk")
|
326
|
-
.add_elems(line_elems(
|
332
|
+
.add_elems(line_elems(filename, chunk.label)),
|
327
333
|
case
|
328
334
|
when label
|
329
335
|
Markup.new("div")
|
330
336
|
.add_attrs("class" => "the-block")
|
331
|
-
.add_elems(line_elems(
|
337
|
+
.add_elems(line_elems(filename, label))
|
332
338
|
else nil
|
333
339
|
end
|
334
340
|
]),
|
@@ -342,7 +348,7 @@ module Parse
|
|
342
348
|
]),
|
343
349
|
Markup.new("div")
|
344
350
|
.add_attrs("class" => "panel-body")
|
345
|
-
.add_elems(Markup.new("pre").add_elems(highlight(
|
351
|
+
.add_elems(Markup.new("pre").add_elems(highlight(filename, block, HICPP)))
|
346
352
|
])
|
347
353
|
end
|
348
354
|
div
|
@@ -357,7 +363,7 @@ module Parse
|
|
357
363
|
.add_elems(
|
358
364
|
Markup.new("span")
|
359
365
|
.add_attrs("class" => "genericons-neue genericons-neue-info")),
|
360
|
-
page_elems(
|
366
|
+
page_elems(filename, text)
|
361
367
|
])
|
362
368
|
when sscan.skip(ENTER_ALERT)
|
363
369
|
text = sscan.scan_until END_INDENT
|
@@ -370,7 +376,7 @@ module Parse
|
|
370
376
|
.add_elems(
|
371
377
|
Markup.new("span")
|
372
378
|
.add_attrs("class" => "genericons-neue genericons-neue-notice")),
|
373
|
-
page_elems(
|
379
|
+
page_elems(filename, text)
|
374
380
|
])
|
375
381
|
when sscan.skip(ENTER_BUG)
|
376
382
|
text = sscan.scan_until END_INDENT
|
@@ -383,19 +389,19 @@ module Parse
|
|
383
389
|
.add_elems(
|
384
390
|
Markup.new("span")
|
385
391
|
.add_attrs("class" => "genericons-neue genericons-neue-bug")),
|
386
|
-
page_elems(
|
392
|
+
page_elems(filename, text)
|
387
393
|
])
|
388
394
|
when sscan.skip(ENTER_QUOTE)
|
389
395
|
text = sscan.scan_until END_INDENT
|
390
396
|
text = String.new(text).erase INDENT
|
391
397
|
Markup.new("blockquote")
|
392
|
-
.add_elems(page_elems(
|
398
|
+
.add_elems(page_elems(filename, text))
|
393
399
|
when (sscan.match? ENTER_OLIST)
|
394
400
|
list = Markup.new "ol"
|
395
401
|
while sscan.skip ENTER_OLIST
|
396
402
|
text = sscan.scan_until END_INDENT
|
397
403
|
text = String.new(text).erase INDENT
|
398
|
-
item = Markup.new("li").add_elems(page_elems(
|
404
|
+
item = Markup.new("li").add_elems(page_elems(filename, text))
|
399
405
|
list.add_elems item
|
400
406
|
sscan.skip EMPTY_LINES
|
401
407
|
end
|
@@ -405,7 +411,7 @@ module Parse
|
|
405
411
|
while sscan.skip ENTER_ULIST
|
406
412
|
text = sscan.scan_until END_INDENT
|
407
413
|
text = String.new(text).erase INDENT
|
408
|
-
item = Markup.new("li").add_elems(page_elems(
|
414
|
+
item = Markup.new("li").add_elems(page_elems(filename, text))
|
409
415
|
list.add_elems item
|
410
416
|
sscan.skip EMPTY_LINES
|
411
417
|
end
|
@@ -420,7 +426,7 @@ module Parse
|
|
420
426
|
item = Markup.new("li")
|
421
427
|
item.add_attrs("class" => "li-todo") if type[0] == " "
|
422
428
|
item.add_attrs("class" => "li-done") if type[0] != " "
|
423
|
-
item.add_elems page_elems(
|
429
|
+
item.add_elems page_elems(filename, text)
|
424
430
|
list.add_elems item
|
425
431
|
sscan.skip EMPTY_LINES
|
426
432
|
end
|
@@ -431,8 +437,8 @@ module Parse
|
|
431
437
|
term = sscan[1]
|
432
438
|
text = sscan.scan_until END_INDENT
|
433
439
|
text = String.new(text).erase INDENT
|
434
|
-
list.add_elems(Markup.new("dt").add_elems(line_elems(
|
435
|
-
list.add_elems(Markup.new("dd").add_elems(page_elems(
|
440
|
+
list.add_elems(Markup.new("dt").add_elems(line_elems(filename, term)))
|
441
|
+
list.add_elems(Markup.new("dd").add_elems(page_elems(filename, text)))
|
436
442
|
sscan.skip EMPTY_LINES
|
437
443
|
end
|
438
444
|
list
|
@@ -446,13 +452,14 @@ module Parse
|
|
446
452
|
when sscan.match?(ENTER_TEXT)
|
447
453
|
text = sscan.scan_until END_SIMPLE
|
448
454
|
text = String.new(text).erase EOB_MARKER
|
449
|
-
Markup.new("p").add_elems(line_elems(
|
455
|
+
Markup.new("p").add_elems(line_elems(filename, text))
|
450
456
|
end)
|
451
457
|
end
|
452
458
|
return elems
|
453
459
|
end
|
454
460
|
|
455
|
-
|
461
|
+
# Highlight source.
|
462
|
+
def self.highlight filename, input, table
|
456
463
|
elems = Markup.new
|
457
464
|
sscan = StringScanner.new input
|
458
465
|
until sscan.eos?
|
@@ -465,8 +472,8 @@ module Parse
|
|
465
472
|
elems.add_elems(
|
466
473
|
Markup.new("a")
|
467
474
|
.add_attrs("class" => "chunk")
|
468
|
-
.add_attrs("href" => ChunkRef.new(
|
469
|
-
.add_elems(line_elems(
|
475
|
+
.add_attrs("href" => ChunkRef.new(filename, label))
|
476
|
+
.add_elems(line_elems(filename, label)))
|
470
477
|
next
|
471
478
|
end
|
472
479
|
table.each do |entry|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schizm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- M. Grady Saunders
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: mgradysaunders@gmail.com
|