recordx 0.5.3 → 0.6.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/lib/recordx.rb +53 -46
- data.tar.gz.sig +0 -0
- metadata +31 -32
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 843e6a429e72573650377022053a10cf879c6f151d3a43966922f1154bc0af15
|
4
|
+
data.tar.gz: 00ba50d0bc239fc24269421f88eb8fbaae634893d0a735a36b8392f1a411f81e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed493de1e9c6ea457f2eb8f35812f30c89c31b36f8993b3affb73c69fe28b458c02d40e889619d7cb4db64dfda7d351a53230f69bbebdbd6ee4158c844f7113a
|
7
|
+
data.tar.gz: f4d45056871fd9ea42b0006d080ac85ea7820c0a8bb3b75f66f85bbf95a2f2f54ad389c995e2e92190b8ee9452911485534000148839e83179de0bb098b1aa39
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/recordx.rb
CHANGED
@@ -4,62 +4,69 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
require 'rexle'
|
7
|
+
require 'kvx'
|
8
|
+
require 'rxfreader'
|
7
9
|
require 'rexle-builder'
|
8
10
|
|
9
11
|
|
10
12
|
class RecordX
|
13
|
+
using ColouredText
|
11
14
|
|
12
15
|
attr_reader :id, :created, :last_modified
|
13
|
-
|
16
|
+
|
14
17
|
class RXHash < Hash
|
15
|
-
|
18
|
+
|
16
19
|
def initialize(callerx)
|
17
20
|
super()
|
18
|
-
@callerx = callerx
|
21
|
+
@callerx = callerx
|
19
22
|
end
|
20
23
|
|
21
24
|
def []=(name, val)
|
22
25
|
unless @callerx.send(name.to_sym) == val then
|
23
|
-
@callerx.send((name.to_s + '=').to_sym, val)
|
26
|
+
@callerx.send((name.to_s + '=').to_sym, val)
|
24
27
|
end
|
25
28
|
super(name, val)
|
26
29
|
end
|
27
|
-
|
30
|
+
|
28
31
|
def clone()
|
29
32
|
self.to_h.clone
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
|
-
def initialize(x=nil, callerx=nil, id=nil, created=nil, last_modified=nil,
|
36
|
+
def initialize(x=nil, callerx=nil, id=nil, created=nil, last_modified=nil,
|
34
37
|
debug: false)
|
35
|
-
|
38
|
+
|
36
39
|
@debug = debug
|
37
|
-
puts 'x: ' + x.inspect if @debug
|
40
|
+
puts ('x: ' + x.inspect).debug if @debug
|
38
41
|
|
39
42
|
h = if x.is_a? Hash then x
|
40
|
-
|
43
|
+
|
41
44
|
x
|
42
|
-
|
45
|
+
|
43
46
|
elsif x.is_a? Array then
|
44
|
-
|
47
|
+
|
45
48
|
x.inject({}) do |r,y|
|
46
49
|
val = y.text.is_a?(String) ? y.text.unescape : ''
|
47
50
|
r.merge(y.name.to_sym => val)
|
48
51
|
end
|
49
|
-
|
52
|
+
|
53
|
+
elsif x.respond_to? :to_h
|
54
|
+
|
55
|
+
x.to_h
|
56
|
+
|
50
57
|
else
|
51
|
-
|
58
|
+
|
52
59
|
x
|
53
|
-
|
60
|
+
|
54
61
|
end
|
55
|
-
|
56
|
-
@
|
57
|
-
created, last_modified
|
62
|
+
|
63
|
+
@id, @created, @last_modified = id, created, last_modified
|
58
64
|
@h = RXHash.new(self).merge h
|
59
65
|
h.each {|name,val| attr_accessor2(name.to_s, val) }
|
60
|
-
|
66
|
+
@callerx = callerx
|
67
|
+
|
61
68
|
end
|
62
|
-
|
69
|
+
|
63
70
|
def [](k) @h[k] end
|
64
71
|
def []=(k,v) @h[k] = v end
|
65
72
|
def keys() @h.keys end
|
@@ -82,39 +89,39 @@ class RecordX
|
|
82
89
|
def to_h()
|
83
90
|
@h.clone
|
84
91
|
end
|
85
|
-
|
92
|
+
|
86
93
|
def to_html(xslt: '')
|
87
94
|
|
88
95
|
# This method is expected to be used within Dynarex
|
89
|
-
|
96
|
+
|
90
97
|
kvx = self.to_kvx
|
91
98
|
|
92
|
-
xsl_buffer =
|
99
|
+
xsl_buffer = RXFReader.read(xslt).first
|
93
100
|
#jr100316 xslt = Nokogiri::XSLT(xsl_buffer)
|
94
|
-
#jr100316 xslt.transform(Nokogiri::XML(kvx.to_xml)).to_s
|
101
|
+
#jr100316 xslt.transform(Nokogiri::XML(kvx.to_xml)).to_s
|
95
102
|
Rexslt.new(xsl_buffer, kvx.to_xml).to_s
|
96
103
|
|
97
104
|
end
|
98
|
-
|
105
|
+
|
99
106
|
def to_kvx()
|
100
|
-
|
101
|
-
puts 'inside to_kvx' if @debug
|
102
|
-
kvx = Kvx.new(@h.to_h)
|
103
|
-
|
107
|
+
|
108
|
+
puts 'inside to_kvx'.info if @debug
|
109
|
+
kvx = Kvx.new(@h.to_h, debug: @debug)
|
110
|
+
|
104
111
|
if @callerx and @callerx.summary[:recordx_type] then
|
105
112
|
summary_fields = @callerx.summary.keys - [:recordx_type, \
|
106
113
|
:format_mask, :schema, :default_key]
|
107
114
|
summary_fields.each {|field| kvx.summary[field] = @callerx.summary[field] }
|
108
115
|
end
|
109
|
-
|
116
|
+
|
110
117
|
kvx
|
111
|
-
|
118
|
+
|
112
119
|
end
|
113
|
-
|
120
|
+
|
114
121
|
def to_s()
|
115
122
|
self.to_kvx.to_s
|
116
123
|
end
|
117
|
-
|
124
|
+
|
118
125
|
def to_xml()
|
119
126
|
|
120
127
|
def build(xml, h)
|
@@ -123,7 +130,7 @@ class RecordX
|
|
123
130
|
|
124
131
|
xml = RexleBuilder.new
|
125
132
|
|
126
|
-
Rexle.new(xml.root { build xml, h }).xml pretty: true
|
133
|
+
Rexle.new(xml.root { build xml, h }).xml pretty: true
|
127
134
|
end
|
128
135
|
|
129
136
|
def update(h)
|
@@ -133,16 +140,16 @@ class RecordX
|
|
133
140
|
private
|
134
141
|
|
135
142
|
def method_missing(method_name, *raw_args)
|
136
|
-
|
143
|
+
|
137
144
|
arg = raw_args.length > 0 ? raw_args.first : nil
|
138
145
|
|
139
146
|
attr_accessor2(method_name[/\w+/], arg)
|
140
|
-
arg ? self.send(method_name, arg) : self.send(method_name)
|
147
|
+
arg ? self.send(method_name, arg) : self.send(method_name)
|
141
148
|
end
|
142
149
|
|
143
150
|
def attr_accessor2(name,val=nil)
|
144
151
|
|
145
|
-
reserved_keywords = (
|
152
|
+
reserved_keywords = (
|
146
153
|
Object.public_methods | \
|
147
154
|
Kernel.public_methods | \
|
148
155
|
public_methods + [:method_missing]
|
@@ -152,13 +159,13 @@ class RecordX
|
|
152
159
|
if (reserved_keywords - exceptions - @h.keys).include? name.to_sym then
|
153
160
|
raise "recordx: reserved keyword *#{name}* can't be used as a field name"
|
154
161
|
end
|
155
|
-
|
162
|
+
|
156
163
|
self.instance_eval %Q{
|
157
|
-
|
164
|
+
|
158
165
|
def #{name}=(s)
|
159
|
-
|
166
|
+
|
160
167
|
puts 'inside #{name} assignment' if @debug
|
161
|
-
|
168
|
+
|
162
169
|
@#{name} = s.to_s
|
163
170
|
unless @h[:#{name}] == s.to_s then
|
164
171
|
@h[:#{name}] = s.to_s
|
@@ -167,19 +174,19 @@ class RecordX
|
|
167
174
|
end
|
168
175
|
|
169
176
|
}
|
170
|
-
|
177
|
+
|
171
178
|
# If this method has been monkey patched don't attempt to overwrite it
|
172
|
-
|
179
|
+
|
173
180
|
if not self.public_methods.include? name.to_sym then
|
174
|
-
self.instance_eval %Q{
|
181
|
+
self.instance_eval %Q{
|
175
182
|
def #{name}()
|
176
183
|
@#{name}
|
177
184
|
end
|
178
185
|
}
|
179
186
|
end
|
180
|
-
|
187
|
+
|
181
188
|
self.method((name + '=').to_sym).call val if val
|
182
|
-
|
189
|
+
|
183
190
|
end
|
184
191
|
|
185
|
-
end
|
192
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recordx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -11,54 +11,54 @@ cert_chain:
|
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMjIyMjAxNjMwWhcN
|
15
|
+
MjMwMjIyMjAxNjMwWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDJVZE6
|
17
|
+
Rmm1/oFA4V4PZWAz2nJZM874Ro+sqzgdo0VDvPV7G8h2xCDoOHZQK/+02255s0sQ
|
18
|
+
Qn3B5qhFtcKemlxEA50ilFukCpqrimHfv3gU5EM69v1eqddruX8IkZG62+KsbqzY
|
19
|
+
PnexVTH9pEW+blHhbjLzSaVAElh5g3ljxZE38LEreOD8lK3SQMkJR1NGp1KfHRAP
|
20
|
+
ptwzFYsqQTN3ZRNmIcuCuX7ubRfdDZD/OcTSVC6y0FHDe/Ozw43esloHiUcCjGm3
|
21
|
+
BuBBBi+r9Jetb9ejCx3g0Y8AwuB4fQtU6Nn2ywRlwc3Jr+WwZYs6j/CPhXApQGpm
|
22
|
+
oZu8PMcs3iDm/xLMbRTKzHG4h0yqRImRvf2CPJzifG2iDqbwIeX0ARUm01TJebep
|
23
|
+
3pC0jHMyqTyh0aUuwi4XPju/ay3uVuHYmKUKfy/dHmpcLC/DtX5+1ovEMmKF553Y
|
24
|
+
0U+J/q3/nlPPuwprBWc4kbiwVd7yAU0pIp0PyuBuowm4DGTZxnTU16oalXECAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUZXBQNQsZ
|
26
|
+
yBUbbrLnylBogj+gbXswJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
27
|
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEACarv5CWButZ0p3od37VRkXaRl5DbTIJKvoS2mr2v
|
29
|
+
jiW+TQYVXxnPm98kUyiWaEQ6WKoSMj6vWwd4xIcAPpIzFj9QRYjkSUCEuRHlEl7X
|
30
|
+
jepBTwG7gvFPG017dN0tJ+KMeIYIMPkGpVS2HpdVivGP6Mi0FmVAfQQNCK9vGbKZ
|
31
|
+
Q2/nOEl9fVJN/T6RyGj2FastDNR19eInbKh0BEFrlT1P1JvixFN2yvEZE1WCc/j6
|
32
|
+
Lee70CFxZ2nbo38W+Ib9/xsH63ReblZdyZQ+rZeylCfUYW7My6nmFocOORx6FlaC
|
33
|
+
ui0KGYozMGHnUcUg1ugJXYgQbcZNuogYbOtfNUO4JraXvWNufVaSSC2Drs9N0hoo
|
34
|
+
6v5qwwlJDbWqIY77HByBTuAKnL3ieOFagNPAMpc2jqCeb87djPW4yaqf3VPiErCI
|
35
|
+
c2Br1Vud354zuw/XUJjWaUJE9aaj0epjLLrkLPQbv5pyjFmIepSjv2rEX/kZ2lqb
|
36
|
+
Puc+e2w9l3V2/PUSgRgVdvWq
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2022-02-22 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
|
-
name:
|
41
|
+
name: kvx
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
46
|
+
version: '1.1'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.
|
49
|
+
version: 1.1.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '1.
|
56
|
+
version: '1.1'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 1.
|
59
|
+
version: 1.1.0
|
60
60
|
description:
|
61
|
-
email:
|
61
|
+
email: digital.robertson@gmail.com
|
62
62
|
executables: []
|
63
63
|
extensions: []
|
64
64
|
extra_rdoc_files: []
|
@@ -83,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '0'
|
85
85
|
requirements: []
|
86
|
-
|
87
|
-
rubygems_version: 2.7.6
|
86
|
+
rubygems_version: 3.2.22
|
88
87
|
signing_key:
|
89
88
|
specification_version: 4
|
90
89
|
summary: A kind of Hash which can also use accessor methods to store or retrieve values.
|
metadata.gz.sig
CHANGED
Binary file
|