polyrex-schema 0.2.3 → 0.3.0
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/polyrex-schema.rb +33 -28
- metadata +3 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af7dd1f76a6cfe98730cb33f12fb1da876849e8e
|
4
|
+
data.tar.gz: 36199fb4a8b5baf5208dc738e6a9c1e2a9fb12f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dc8b546b014973131fb295df13b6c858e651dadd0a47f0b0c62f6c71f8f0506a8224e5599986f732be5fd3097999caac9f33f9493760b95349b1a7182f46b26
|
7
|
+
data.tar.gz: b3377913c78b968c486fd30202c9af1220a1c04f75b57bff282d08157440e0c4d9ceac798f0b91786bd5004a39979a9748fcd2a0a75358b5fe043e97a3f1a5fd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/polyrex-schema.rb
CHANGED
@@ -9,29 +9,16 @@ class PolyrexSchema
|
|
9
9
|
def initialize(s)
|
10
10
|
|
11
11
|
s.prepend 'root/' if s[0] == '{'
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
r = add_node a
|
16
|
-
r[3] << node('recordx_type', 'polyrex') << node('schema',s)
|
12
|
+
|
13
|
+
r = add_node split(s)
|
14
|
+
r[3] << node('recordx_type', 'polyrex') << node('schema',s)
|
17
15
|
@doc = Rexle.new(r)
|
18
16
|
end
|
19
17
|
|
20
|
-
def to_a()
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_h()
|
25
|
-
scan_to_h(@doc.root.xpath 'records/.')
|
26
|
-
end
|
27
|
-
|
28
|
-
def to_doc()
|
29
|
-
@doc
|
30
|
-
end
|
31
|
-
|
32
|
-
def to_s()
|
33
|
-
@doc.to_s
|
34
|
-
end
|
18
|
+
def to_a() scan_to_a(@doc.root.xpath 'records/.') end
|
19
|
+
def to_h() scan_to_h(@doc.root.xpath 'records/.') end
|
20
|
+
def to_doc() @doc end
|
21
|
+
def to_s() @doc.to_s end
|
35
22
|
|
36
23
|
private
|
37
24
|
|
@@ -49,14 +36,8 @@ class PolyrexSchema
|
|
49
36
|
|
50
37
|
if raw_siblings then
|
51
38
|
|
52
|
-
|
53
|
-
|
54
|
-
a2 = x.scan(/(\{[^\}]+\})|(\w+[^\/]*)\/|\/(.*)|(.+)/).flatten(1)\
|
55
|
-
.compact
|
56
|
-
add_node a2 + a
|
57
|
-
end
|
58
|
-
|
59
|
-
return r
|
39
|
+
return raw_siblings[1..-2].split(/\s*\s*;/,2)\
|
40
|
+
.map {|x| add_node split(x) + a}
|
60
41
|
end
|
61
42
|
|
62
43
|
name, raw_fields = line.split('[',2)
|
@@ -115,4 +96,28 @@ class PolyrexSchema
|
|
115
96
|
|
116
97
|
end
|
117
98
|
|
99
|
+
def split(s)
|
100
|
+
|
101
|
+
brace_count = 0
|
102
|
+
|
103
|
+
s.each_char.inject(['']) do |r, c|
|
104
|
+
|
105
|
+
case c
|
106
|
+
when '{'
|
107
|
+
brace_count += 1
|
108
|
+
when '}'
|
109
|
+
brace_count -= 1
|
110
|
+
end
|
111
|
+
|
112
|
+
if c != '/' or brace_count > 0 then
|
113
|
+
r.last << c
|
114
|
+
else
|
115
|
+
c = '' if c == '/'
|
116
|
+
r << c
|
117
|
+
end
|
118
|
+
r
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
118
123
|
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.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
x3ppGgUf/zri8F8syPC4U/PhiV9ZBYGjFZDoQWr9TW6gJ1rEPuB1RYH9RPLaSYy4
|
32
32
|
SFJGImVxuM2M+Q==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2014-08-
|
34
|
+
date: 2014-08-26 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rexle
|
@@ -80,10 +80,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
80
|
version: '0'
|
81
81
|
requirements: []
|
82
82
|
rubyforge_project:
|
83
|
-
rubygems_version: 2.2.
|
83
|
+
rubygems_version: 2.2.0
|
84
84
|
signing_key:
|
85
85
|
specification_version: 4
|
86
86
|
summary: The polyrex-schema gem creates Polyrex XML from an initial shorthand schematic
|
87
87
|
string.
|
88
88
|
test_files: []
|
89
|
-
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|