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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0abf411199d6f82e536976e4be82c509a47aff8c
4
- data.tar.gz: 969dc383a7aecb36044bb586ca38bd23624a9923
2
+ SHA256:
3
+ metadata.gz: fef7dae053f5e7e38f82bd1c85144f3e519c0790c3ca0ef653e6516d0e13ecf0
4
+ data.tar.gz: 237301910cdf78fee81ce27d8b2d8e0c80b4398a47c41538c6e4e2fd408bcea7
5
5
  SHA512:
6
- metadata.gz: e5ab154dbda4c8abd0979636ec6b0d6b6a9facf4c601b47ab465844ffa5540bb6632565fca928cb370238eee511b4c5c2398fa1323d7a9bd0bbd8e9cc1c62b9c
7
- data.tar.gz: 8cbe502092083fbf28066c562f09eab32a136e08bc3fa8e13a22d675de8efff731ec77bd78ee502f4bfd4a26b20838a5a77b884b07f049db4eaad72c7c2626d2
6
+ metadata.gz: 964aa75ebd8c564a3a3119cd91879627c53be9825b2a555681de332d400cb803af289d92fc5e8a276fb993f96beb5fe9d3c360a69e83787a1df8da580356e007
7
+ data.tar.gz: 618e14c47d2c94a4ebc6fdb91d7e1b673661f6794807198545a004808e48d362e7064205bb68fb94dd9729b1aebdfd60d30229e1f7b8e2dbddb14233e98ff2b9
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -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
- @doc = Rexle.new(r)
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.1
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
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDMxMDAwMjU1NVoXDTE3MDMxMDAwMjU1NVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAJz2C34C0XLpCYwBaWOu2+ikCL0qsC2jE1QKLEWD0KgDQ4RdQ534LcRCrHeu
19
- LyhTWSP5OCQAxX4PhcqBy0BkbXEicguP9HcBDOZR1x5NZyDtvq06uyOkijneO+YD
20
- awo4+utmz5aFmnEn7pMkhiiNP6NeBHbcJRiTbcqJr2nmj/fnaYblSvWuxMFb5NMD
21
- 5J9wLUM6qT/66vNA7wI9f0LVV9O6mvKKHi5VXVNDgIHHmFNgmb1V0BiauKPfOqZ+
22
- /d/fPBGPF9sNwDlCS97ETKkYbat/Vw7pVV5Fl7+3CkrPI4S51htDy7pjFH/9KG1S
23
- QUYKtkvPQwJCvUxZsI5yjD/kKL0CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUqL8Sssw0AB41lwtMaACDdhYoT+8wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAOy81zP5y
27
- /Fb0rxFEMqvOpmU6JDM7reh8Dye2yD5gzLRlceb5I7aP6qmSmfZ3kZTmrraPI5V8
28
- 1JKsjTm43byR27IYDrBOQEeWc39v2a/DtTdUtDzMMc+fwlRUzKf7qVzS0xsjgRN2
29
- gyYAbfbOW6Pc3SsRvKq0MDgdtFep+mP8H7rk832U0mlhqjkcLwLuI6GwN9evARr1
30
- 0bcC7YBebBl9lgxdcvvyQhX4jjARQer4huvjOCp7Vo0E43JAih8An5pqOaxsoHYN
31
- 7HM6eFXEshFmjb+/GXg2liBEIgNS7Sxo81rQE32DxEikD1U9QQFUwKU3CD2CZIoY
32
- i9QykFbHPjMCKw==
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: 2016-03-10 00:00:00.000000000 Z
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.2'
46
+ version: '1.5'
43
47
  - - ">="
44
48
  - !ruby/object:Gem::Version
45
- version: 1.2.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.2'
56
+ version: '1.5'
53
57
  - - ">="
54
58
  - !ruby/object:Gem::Version
55
- version: 1.2.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@r0bertson.co.uk
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
- rubyforge_project:
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