kvx 0.9.5 → 0.9.10
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/kvx.rb +43 -10
- metadata +9 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 109d12cb0e82c682e94c369c81726331070e2a7e57d6d88fea4c1701701c7c1e
|
4
|
+
data.tar.gz: f84bdb9a378f13abb834f6e7be36924812ad1028b7c6846c002c44f3e4b69ead
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5769d109589a3c4d5d65131ef45cc78a27d3e63c82029a86d60cb12adcd2be2ec5da7b0c5fde77646fee357072fad8c58934ac1d413d97e2c313905c3cd8c709
|
7
|
+
data.tar.gz: 56982a372339f230ea947a8ac0f2d0e0cd5e297c86b1cd4fd38aec1a0557e6a273bbe25e0cfc5c7cb959af73a56fcf972387ec595a73eae7327d49302bfaa19b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/kvx.rb
CHANGED
@@ -244,7 +244,10 @@ class Kvx
|
|
244
244
|
def make_xml(h)
|
245
245
|
|
246
246
|
puts 'inside make_xml: ' + h.inspect if @debug
|
247
|
-
|
247
|
+
h2 = h.clone
|
248
|
+
h2.each {|key,value| value.delete :items if value.is_a?(Hash) }
|
249
|
+
|
250
|
+
RexleBuilder.new(h2, debug: false).to_a[3..-1]
|
248
251
|
end
|
249
252
|
|
250
253
|
def parse_string(s)
|
@@ -323,22 +326,48 @@ class Kvx
|
|
323
326
|
|
324
327
|
|
325
328
|
def scan_to_h(txt)
|
329
|
+
|
330
|
+
txt.gsub!(/^\w+:(?=$)/,'\0 ')
|
331
|
+
puts 'txt:' + txt.inspect if @debug
|
332
|
+
|
333
|
+
# auto indent any multiline values which aren't already indented
|
334
|
+
|
335
|
+
indent = ''
|
336
|
+
|
337
|
+
lines = txt.gsub(/^-+$/m,'').lines.map do |line|
|
326
338
|
|
339
|
+
if not line[/^ *\w+:|^ +/] then
|
340
|
+
indent + ' ' + line
|
341
|
+
else
|
342
|
+
indent = line[/^ +/] || ''
|
343
|
+
line
|
344
|
+
end
|
345
|
+
|
346
|
+
end
|
347
|
+
puts ('lines: ' + lines.inspect).debug if @debug
|
348
|
+
|
327
349
|
puts ('inside scan_to_h').info if @debug
|
328
|
-
raw_a = LineTree.new(
|
350
|
+
raw_a = LineTree.new(lines.join.gsub(/(^-*$)|(?<=\S) +#.*/,'').strip,
|
329
351
|
ignore_blank_lines: @ignore_blank_lines).to_a
|
330
352
|
puts ('raw_a: ' + raw_a.inspect).debug if @debug
|
331
353
|
|
332
354
|
# if there are any orphan lines which aren't nested underneath a
|
333
355
|
# label, they will be fixed using the following statement
|
334
356
|
|
335
|
-
a = raw_a.chunk {|x| x[0][/^[^:]
|
357
|
+
a = raw_a.chunk {|x| x[0][/^[^:]+:/]}.inject([]) do |r,y|
|
358
|
+
|
359
|
+
|
360
|
+
puts 'r: ' + r.inspect if @debug
|
361
|
+
|
336
362
|
if r.last and !y.first[/[^:]+:/] then
|
337
363
|
r.last << y.last[-1]
|
338
364
|
else
|
365
|
+
puts 'y: ' + y.inspect if @debug
|
339
366
|
r << y.last[-1]
|
340
367
|
end
|
368
|
+
|
341
369
|
r
|
370
|
+
|
342
371
|
end
|
343
372
|
|
344
373
|
@body = a.inject({}) do |r, line|
|
@@ -346,13 +375,16 @@ class Kvx
|
|
346
375
|
s = line.shift
|
347
376
|
puts ('s: ' + s.inspect).debug if @debug
|
348
377
|
|
349
|
-
if line.join.length > 0 then
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
378
|
+
if line.join.length > 0 then
|
379
|
+
|
380
|
+
puts 'line: ' + line.inspect if @debug
|
381
|
+
|
382
|
+
padding = line[0].length < 2 ? "\n" : "\n "
|
383
|
+
s10 = line.map{|x| x.join(padding)}.join("\n")
|
384
|
+
|
385
|
+
r2 = if s10[/^ *\w+:[\n ]/] then
|
354
386
|
|
355
|
-
scan_to_h(
|
387
|
+
scan_to_h(s10)
|
356
388
|
|
357
389
|
else
|
358
390
|
|
@@ -366,6 +398,7 @@ class Kvx
|
|
366
398
|
end
|
367
399
|
|
368
400
|
r3 = {description: txt2, items: h}
|
401
|
+
puts 'remaining: ' + remaining.inspect if @debug
|
369
402
|
|
370
403
|
if remaining then
|
371
404
|
r3.merge!(scan_to_h remaining + "\n ")
|
@@ -378,7 +411,7 @@ class Kvx
|
|
378
411
|
|
379
412
|
else
|
380
413
|
|
381
|
-
value, name = s.split(
|
414
|
+
value, name = s.split(/: */,2).reverse
|
382
415
|
name ||= 'description'
|
383
416
|
v = value =~ /^\{\s*\}$/ ? {} : value.to_s
|
384
417
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kvx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
m/+jxdgFjKKGxeZqunu9cp5ca9wSjjtKh/VA/3xZtPwokCa7vCMB+ZxUP0jvd++u
|
36
36
|
OTXy8k/zqddw/VfD/It1UUK4
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2021-
|
38
|
+
date: 2021-06-06 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: line-tree
|
@@ -61,22 +61,22 @@ dependencies:
|
|
61
61
|
name: rxfhelper
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 1.0.0
|
67
64
|
- - "~>"
|
68
65
|
- !ruby/object:Gem::Version
|
69
66
|
version: '1.0'
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.0
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 1.0.0
|
77
74
|
- - "~>"
|
78
75
|
- !ruby/object:Gem::Version
|
79
76
|
version: '1.0'
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.0.0
|
80
80
|
description:
|
81
81
|
email: james@jamesrobertson.eu
|
82
82
|
executables: []
|
@@ -103,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
|
-
|
107
|
-
rubygems_version: 2.7.10
|
106
|
+
rubygems_version: 3.1.2
|
108
107
|
signing_key:
|
109
108
|
specification_version: 4
|
110
109
|
summary: Kvx (Keys, Values, and XML) makes it convenient to store and retrieve the
|
metadata.gz.sig
CHANGED
Binary file
|