kvx 0.9.5 → 0.9.10
Sign up to get free protection for your applications and to get access to all the features.
- 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
|