polyrex-schema 0.4.1 → 0.5.3

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 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