polyrex 1.1.13 → 1.2.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.rb +33 -25
- metadata +6 -46
- 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: 88cb8e71bff63b0569512e98f4fa9019cbd41be1
|
4
|
+
data.tar.gz: 9a2ec75e486de8da01a1a141b8f544f8953aa6e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81e136370547e87c7f974ffcbcf48ccf53641901f0f4c41c6034855d3b6871ff1d075c1d9df96fc4b94ecfcfc93df9bc1737fe9285a915eba948bdcc15ce454a
|
7
|
+
data.tar.gz: 492653c62b318392805f21d9d3fb870467f5e5f226f059f6b1a1a9f9f647759aa74f08013c4080a2ac98fed339298602f5153ad36aa712fde1e6bab4cd6a6755
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/polyrex.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
# file: polyrex.rb
|
4
4
|
|
5
5
|
#require 'open-uri'
|
6
|
-
require 'polyrex-schema'
|
6
|
+
#require 'polyrex-schema'
|
7
7
|
#require 'line-tree'
|
8
8
|
require 'polyrex-objects'
|
9
|
-
require 'polyrex-createobject'
|
9
|
+
#require 'polyrex-createobject'
|
10
10
|
require 'polyrex-object-methods'
|
11
11
|
require 'recordx-xslt'
|
12
12
|
#require 'rexle'
|
@@ -42,10 +42,10 @@ class Polyrex
|
|
42
42
|
attr_accessor :summary_fields, :xslt_schema, :id_counter,
|
43
43
|
:schema, :type, :delimiter, :xslt, :format_masks
|
44
44
|
|
45
|
-
def initialize(location=nil, schema: nil, id_counter: '1')
|
45
|
+
def initialize(location=nil, schema: nil, id_counter: '1', debug: debug)
|
46
46
|
|
47
47
|
|
48
|
-
@id_counter = id_counter
|
48
|
+
@id_counter, @debug = id_counter, debug
|
49
49
|
@format_masks = []
|
50
50
|
@delimiter = ''
|
51
51
|
|
@@ -70,6 +70,7 @@ class Polyrex
|
|
70
70
|
end
|
71
71
|
|
72
72
|
@polyrex_xslt = RecordxXSLT.new
|
73
|
+
#@parent_node = @doc.root if @doc
|
73
74
|
end
|
74
75
|
|
75
76
|
def add(pxobj)
|
@@ -80,15 +81,9 @@ class Polyrex
|
|
80
81
|
CGI.unescapeHTML(to_xml(options))
|
81
82
|
end
|
82
83
|
|
83
|
-
def create(id:
|
84
|
-
|
85
|
-
|
86
|
-
# @parent_node is a Rexle::Element pointing to the current record
|
87
|
-
|
88
|
-
@create.id = id || @id_counter
|
89
|
-
@create.record = @parent_node.name == 'records' ? \
|
90
|
-
@parent_node.root : @parent_node.root.element('records')
|
91
|
-
@create
|
84
|
+
def create(id: @id_counter)
|
85
|
+
puts 'id: ' + id.inspect if @debug
|
86
|
+
@create = PolyrexCreateObject.new(id: id, record: @doc.root)
|
92
87
|
end
|
93
88
|
|
94
89
|
def delete(x=nil)
|
@@ -176,6 +171,7 @@ class Polyrex
|
|
176
171
|
|
177
172
|
buffer = yield if block_given?
|
178
173
|
string_parse buffer.clone, options
|
174
|
+
|
179
175
|
self
|
180
176
|
end
|
181
177
|
|
@@ -212,9 +208,10 @@ class Polyrex
|
|
212
208
|
|
213
209
|
def records
|
214
210
|
|
215
|
-
@doc.root.xpath("records/*").map do |
|
216
|
-
|
211
|
+
@doc.root.xpath("records/*").map do |node|
|
212
|
+
Kernel.const_get(node.name.capitalize).new node, id: @id_counter
|
217
213
|
end
|
214
|
+
|
218
215
|
end
|
219
216
|
|
220
217
|
def rxpath(s)
|
@@ -222,7 +219,9 @@ class Polyrex
|
|
222
219
|
a = @doc.root.xpath s.split('/').map \
|
223
220
|
{|x| x.sub('[','[summary/').prepend('records/')}.join('/')
|
224
221
|
|
225
|
-
a.map
|
222
|
+
a.map do |node|
|
223
|
+
Kernel.const_get(node.name.capitalize).new node, id: node.attributes[:id]
|
224
|
+
end
|
226
225
|
|
227
226
|
end
|
228
227
|
|
@@ -524,10 +523,9 @@ xsl_buffer = '
|
|
524
523
|
|
525
524
|
def load_handlers(schema)
|
526
525
|
|
527
|
-
|
528
|
-
objects = PolyrexObjects.new(schema)
|
526
|
+
objects = PolyrexObjects.new(schema, debug: @debug)
|
529
527
|
h = objects.to_h
|
530
|
-
|
528
|
+
puts 'h: ' + h.inspect if @debug
|
531
529
|
@objects = h.inject({}){|r,x| r.merge x[0].downcase => x[-1]}
|
532
530
|
|
533
531
|
@objects_a = objects.to_a
|
@@ -582,12 +580,18 @@ xsl_buffer = '
|
|
582
580
|
next
|
583
581
|
end
|
584
582
|
|
583
|
+
puts '@schema: ' + @schema.inspect if @debug
|
584
|
+
schema_a = @schema.split('/')[1..-1]
|
585
|
+
|
586
|
+
if @debug then
|
587
|
+
puts 'schema_a: ' + schema_a.inspect
|
588
|
+
puts 'i: ' + i.inspect
|
589
|
+
end
|
590
|
+
|
585
591
|
unless @format_masks[i][/^\(.*\)$/] then
|
586
592
|
|
587
593
|
@field_names, field_values = RXRawLineParser.new(format_masks[i])\
|
588
594
|
.parse(line)
|
589
|
-
|
590
|
-
schema_a = @schema.split('/')[1..-1]
|
591
595
|
|
592
596
|
@field_names = schema_a[i] ? \
|
593
597
|
schema_a[i][/\[([^\]]+)/,1].split(/\s*,\s*/).map(&:to_sym) : \
|
@@ -625,7 +629,9 @@ xsl_buffer = '
|
|
625
629
|
|
626
630
|
format_mask = @format_masks[i].to_s
|
627
631
|
|
628
|
-
|
632
|
+
index = i >= schema_a.length ? schema_a.length - 1 : i
|
633
|
+
|
634
|
+
schema = schema_a[index..-1].join('/')
|
629
635
|
summary.add Rexle::Element.new('format_mask').add_text(format_mask)
|
630
636
|
summary.add Rexle::Element.new('schema').add_text(schema)
|
631
637
|
summary.add Rexle::Element.new('recordx_type').add_text('polyrex')
|
@@ -752,7 +758,7 @@ xsl_buffer = '
|
|
752
758
|
node = #{xpath}
|
753
759
|
|
754
760
|
if node then
|
755
|
-
|
761
|
+
Kernel.const_get(node.name.capitalize).new node, id: @id
|
756
762
|
else
|
757
763
|
nil
|
758
764
|
end
|
@@ -765,7 +771,7 @@ xsl_buffer = '
|
|
765
771
|
|
766
772
|
if nodes then
|
767
773
|
nodes.map do |node|
|
768
|
-
|
774
|
+
Kernel.const_get(node.name.capitalize).new node, id: @id
|
769
775
|
end
|
770
776
|
else
|
771
777
|
nil
|
@@ -785,7 +791,9 @@ xsl_buffer = '
|
|
785
791
|
def refresh_summary()
|
786
792
|
|
787
793
|
summary = @doc.root.element('summary')
|
788
|
-
@summary.to_h.each do |k,v|
|
794
|
+
@summary.to_h.each do |k,v|
|
795
|
+
|
796
|
+
puts "k: %s; v: %s" % [k, v] if @debug
|
789
797
|
e = summary.element(k.to_s)
|
790
798
|
if e then
|
791
799
|
e.text = v
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polyrex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -30,68 +30,28 @@ cert_chain:
|
|
30
30
|
hCr2pfiPoS3nhbgAf3XvP4D146WaQbEgU87QlxPJLhz3yXKi7lwa9XgHQzuifNDi
|
31
31
|
OXU=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2018-03-
|
33
|
+
date: 2018-03-29 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: polyrex-schema
|
37
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0.4'
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 0.4.2
|
45
|
-
type: :runtime
|
46
|
-
prerelease: false
|
47
|
-
version_requirements: !ruby/object:Gem::Requirement
|
48
|
-
requirements:
|
49
|
-
- - "~>"
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version: '0.4'
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.4.2
|
55
35
|
- !ruby/object:Gem::Dependency
|
56
36
|
name: polyrex-objects
|
57
37
|
requirement: !ruby/object:Gem::Requirement
|
58
38
|
requirements:
|
59
39
|
- - "~>"
|
60
40
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 0.9.8
|
65
|
-
type: :runtime
|
66
|
-
prerelease: false
|
67
|
-
version_requirements: !ruby/object:Gem::Requirement
|
68
|
-
requirements:
|
69
|
-
- - "~>"
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '0.9'
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 0.9.8
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: polyrex-createobject
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0.6'
|
41
|
+
version: '1.0'
|
82
42
|
- - ">="
|
83
43
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.
|
44
|
+
version: 1.0.0
|
85
45
|
type: :runtime
|
86
46
|
prerelease: false
|
87
47
|
version_requirements: !ruby/object:Gem::Requirement
|
88
48
|
requirements:
|
89
49
|
- - "~>"
|
90
50
|
- !ruby/object:Gem::Version
|
91
|
-
version: '0
|
51
|
+
version: '1.0'
|
92
52
|
- - ">="
|
93
53
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
54
|
+
version: 1.0.0
|
95
55
|
- !ruby/object:Gem::Dependency
|
96
56
|
name: polyrex-object-methods
|
97
57
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|