polyrex-schema 0.4.1 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/polyrex-schema.rb +33 -13
- metadata +52 -29
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fef7dae053f5e7e38f82bd1c85144f3e519c0790c3ca0ef653e6516d0e13ecf0
|
4
|
+
data.tar.gz: 237301910cdf78fee81ce27d8b2d8e0c80b4398a47c41538c6e4e2fd408bcea7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 964aa75ebd8c564a3a3119cd91879627c53be9825b2a555681de332d400cb803af289d92fc5e8a276fb993f96beb5fe9d3c360a69e83787a1df8da580356e007
|
7
|
+
data.tar.gz: 618e14c47d2c94a4ebc6fdb91d7e1b673661f6794807198545a004808e48d362e7064205bb68fb94dd9729b1aebdfd60d30229e1f7b8e2dbddb14233e98ff2b9
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/polyrex-schema.rb
CHANGED
@@ -3,24 +3,48 @@
|
|
3
3
|
# file: polyrex-schema.rb
|
4
4
|
|
5
5
|
require 'rexle'
|
6
|
+
require 'rexle-builder'
|
6
7
|
|
7
8
|
class PolyrexSchema
|
8
9
|
|
9
|
-
attr_reader :to_schema
|
10
|
+
attr_reader :to_schema, :to_a, :to_h, :to_doc, :to_s
|
10
11
|
|
11
12
|
def initialize(s=nil)
|
12
13
|
|
13
14
|
if s then
|
14
|
-
s.prepend 'root/' if s[0] == '{'
|
15
|
-
|
16
|
-
r = add_node split(s)
|
17
|
-
r[3] << node('recordx_type', 'polyrex')
|
18
15
|
|
19
|
-
|
16
|
+
if s =~ /\// then
|
17
|
+
s.prepend 'root/' if s[0] == '{'
|
18
|
+
|
19
|
+
r = add_node split(s)
|
20
|
+
r[3] << node('recordx_type', 'polyrex')
|
21
|
+
|
22
|
+
@doc = Rexle.new(r)
|
23
|
+
|
24
|
+
@to_a = scan_to_a(@doc.root.xpath 'records/*')
|
25
|
+
@to_h = scan_to_h(@doc.root.xpath 'records/*')
|
26
|
+
@to_doc = @doc
|
27
|
+
@to_s = @doc.to_s
|
28
|
+
|
29
|
+
else
|
30
|
+
|
31
|
+
a = [s[/^[^\[]+/], *s[/(?<=\[)[^\]]+/].split(/ *, */)].map(&:to_sym)
|
32
|
+
@to_a = [a]
|
33
|
+
|
34
|
+
h2 = {
|
35
|
+
format_mask: a[1..-1].map {|x| "[!%s]" % x }.join(' '),
|
36
|
+
schema: "%s[%s]" % [a[0], a[1..-1].join(', ')],
|
37
|
+
recordx_type: 'polyrex'
|
38
|
+
}
|
39
|
+
|
40
|
+
h = {a[0] => {summary: a[1..-1]\
|
41
|
+
.zip(Array.new(a.length-1)).to_h.merge(h2),
|
42
|
+
records: nil }}
|
43
|
+
@to_doc = Rexle.new(RexleBuilder.new(h, debug: false).to_a)
|
44
|
+
end
|
20
45
|
|
21
46
|
end
|
22
47
|
end
|
23
|
-
|
24
48
|
|
25
49
|
def parse(s)
|
26
50
|
doc = Rexle.new s
|
@@ -28,10 +52,6 @@ class PolyrexSchema
|
|
28
52
|
self
|
29
53
|
end
|
30
54
|
|
31
|
-
def to_a() scan_to_a(@doc.root.xpath 'records/*') end
|
32
|
-
def to_h() scan_to_h(@doc.root.xpath 'records/*') end
|
33
|
-
def to_doc() @doc end
|
34
|
-
def to_s() @doc.to_s end
|
35
55
|
|
36
56
|
private
|
37
57
|
|
@@ -76,7 +96,7 @@ class PolyrexSchema
|
|
76
96
|
|
77
97
|
a = r.xpath('summary/*/name()') # => ["entry", "format_mask"]
|
78
98
|
fields = (a - %w(schema format_mask)).map(&:to_sym)
|
79
|
-
node = r.xpath 'records
|
99
|
+
node = r.xpath 'records/*'
|
80
100
|
|
81
101
|
if node.any? then
|
82
102
|
children = scan_to_a(node)
|
@@ -146,4 +166,4 @@ class PolyrexSchema
|
|
146
166
|
|
147
167
|
end
|
148
168
|
|
149
|
-
end
|
169
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polyrex-schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,28 +10,32 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwODE1MTY1MjUzWhcN
|
15
|
+
MjAwODE0MTY1MjUzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCqiHMW
|
17
|
+
UbMPBTYnLSILh+n6v0xl9Jzu8lDEXlYSScAQF3oyjecv7sgo0omE10vdi3pNmvD3
|
18
|
+
0qJA70hyX46sfkGEhmP+w/amY9Bn5D3PoHfAAZ+5F1eLDgQdYkxKmjbM6ZToAZdj
|
19
|
+
/AoO8n31lBE+i1vTYxWejexUxgr2x3tix7jQoKYoqJJj9QeNw9tzRuT6lukGXiRM
|
20
|
+
YxUY5DhyIHdtt8qECChr5wIgBWnfnW5Hc2gr/x1Ny1zaPicDtU1YqvWKe0meds0j
|
21
|
+
zSRUy/mv76OFk5It5zSwGlYk3YNTZQCYhAdvOvcjfiOREvbJVEVXo/xlhFartIt7
|
22
|
+
3wgFshKSOKwXcyfudH+4B8iDJEDWQojgVHHWxXXihZSXI9z8+VSKiFFBrIs71NqU
|
23
|
+
FaPnQdpMzQHxalPGOnaJoGwvvhZpR8+MeKJlFGNkawweWETCPn91+30haEasuD60
|
24
|
+
8xgnY4c3SxPxjuTF0cS+c3tpZWMnNZ+OyOextFpJ6n9ox0sQYKKXeGaJs1ECAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUB2Nu8uaD
|
26
|
+
WAOzEPu11c2MKSNjpsUwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAA0e4BCZhENf8fL4FiWZaeay5IDezDczMLStI5Wl3
|
29
|
+
JNqidT7zKuZ2/Om4QcPsQ8lQ4jYJC1mL83j0VtTlIVXg4sHsWioX8ZtzTbq+S6WO
|
30
|
+
JCc+2j9Djd7DUzXmEtsN7/2zba05GPuD6cpezTepiOChSCQqP738KwAhMAmigd6a
|
31
|
+
ZyapeJovnZa3KPjt7Iehwzrv9yeiFzs6jHfTehZhD8NC3HhbHzdV/uiKMYRyvBa8
|
32
|
+
FU5J0kdshftIeei1FHTpVMIDe2XU/XQqK4XNWC2WAwin9QDXVpaZOlgczclW+85p
|
33
|
+
woSDa9TD4Z0HtPhR3PjCDPEtmQKbb3pf9V5L6kMS+MbE6dVONvqJBf7+ER9uQMyc
|
34
|
+
/rswmfGwy0OiTEcTn5wd1dHEVVVutq2Ixe7KgB/TEM44qdgUt61oyWbOnrleb9vn
|
35
|
+
+op8CjkNQx+epDaxQwNQDqC79IUZYz/s03Qq67amj8rDybVfj+ObyqqqqQms3Uw9
|
36
|
+
nxaDPNvrXePnuin2gmcMIqPS
|
33
37
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
38
|
+
date: 2020-06-23 00:00:00.000000000 Z
|
35
39
|
dependencies:
|
36
40
|
- !ruby/object:Gem::Dependency
|
37
41
|
name: rexle
|
@@ -39,22 +43,42 @@ dependencies:
|
|
39
43
|
requirements:
|
40
44
|
- - "~>"
|
41
45
|
- !ruby/object:Gem::Version
|
42
|
-
version: '1.
|
46
|
+
version: '1.5'
|
43
47
|
- - ">="
|
44
48
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
49
|
+
version: 1.5.7
|
46
50
|
type: :runtime
|
47
51
|
prerelease: false
|
48
52
|
version_requirements: !ruby/object:Gem::Requirement
|
49
53
|
requirements:
|
50
54
|
- - "~>"
|
51
55
|
- !ruby/object:Gem::Version
|
52
|
-
version: '1.
|
56
|
+
version: '1.5'
|
53
57
|
- - ">="
|
54
58
|
- !ruby/object:Gem::Version
|
55
|
-
version: 1.
|
59
|
+
version: 1.5.7
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rexle-builder
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '1.0'
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.2
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.0'
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.0.2
|
56
80
|
description:
|
57
|
-
email: james@
|
81
|
+
email: james@jamesrobertson.eu
|
58
82
|
executables: []
|
59
83
|
extensions: []
|
60
84
|
extra_rdoc_files: []
|
@@ -79,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
103
|
- !ruby/object:Gem::Version
|
80
104
|
version: '0'
|
81
105
|
requirements: []
|
82
|
-
|
83
|
-
rubygems_version: 2.4.8
|
106
|
+
rubygems_version: 3.0.3
|
84
107
|
signing_key:
|
85
108
|
specification_version: 4
|
86
109
|
summary: The polyrex-schema gem creates Polyrex XML from an initial shorthand schematic
|
metadata.gz.sig
CHANGED
Binary file
|