polyrex 1.1.13 → 1.2.0
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 +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
|