recordx 0.5.5 → 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 +47 -41
- data.tar.gz.sig +0 -0
- metadata +31 -31
- 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,6 +4,8 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
require 'rexle'
|
7
|
+
require 'kvx'
|
8
|
+
require 'rxfreader'
|
7
9
|
require 'rexle-builder'
|
8
10
|
|
9
11
|
|
@@ -11,56 +13,60 @@ class RecordX
|
|
11
13
|
using ColouredText
|
12
14
|
|
13
15
|
attr_reader :id, :created, :last_modified
|
14
|
-
|
16
|
+
|
15
17
|
class RXHash < Hash
|
16
|
-
|
18
|
+
|
17
19
|
def initialize(callerx)
|
18
20
|
super()
|
19
|
-
@callerx = callerx
|
21
|
+
@callerx = callerx
|
20
22
|
end
|
21
23
|
|
22
24
|
def []=(name, val)
|
23
25
|
unless @callerx.send(name.to_sym) == val then
|
24
|
-
@callerx.send((name.to_s + '=').to_sym, val)
|
26
|
+
@callerx.send((name.to_s + '=').to_sym, val)
|
25
27
|
end
|
26
28
|
super(name, val)
|
27
29
|
end
|
28
|
-
|
30
|
+
|
29
31
|
def clone()
|
30
32
|
self.to_h.clone
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
34
|
-
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,
|
35
37
|
debug: false)
|
36
|
-
|
38
|
+
|
37
39
|
@debug = debug
|
38
40
|
puts ('x: ' + x.inspect).debug if @debug
|
39
41
|
|
40
42
|
h = if x.is_a? Hash then x
|
41
|
-
|
43
|
+
|
42
44
|
x
|
43
|
-
|
45
|
+
|
44
46
|
elsif x.is_a? Array then
|
45
|
-
|
47
|
+
|
46
48
|
x.inject({}) do |r,y|
|
47
49
|
val = y.text.is_a?(String) ? y.text.unescape : ''
|
48
50
|
r.merge(y.name.to_sym => val)
|
49
51
|
end
|
50
|
-
|
52
|
+
|
53
|
+
elsif x.respond_to? :to_h
|
54
|
+
|
55
|
+
x.to_h
|
56
|
+
|
51
57
|
else
|
52
|
-
|
58
|
+
|
53
59
|
x
|
54
|
-
|
60
|
+
|
55
61
|
end
|
56
|
-
|
62
|
+
|
57
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
|
61
|
-
|
67
|
+
|
62
68
|
end
|
63
|
-
|
69
|
+
|
64
70
|
def [](k) @h[k] end
|
65
71
|
def []=(k,v) @h[k] = v end
|
66
72
|
def keys() @h.keys end
|
@@ -83,39 +89,39 @@ class RecordX
|
|
83
89
|
def to_h()
|
84
90
|
@h.clone
|
85
91
|
end
|
86
|
-
|
92
|
+
|
87
93
|
def to_html(xslt: '')
|
88
94
|
|
89
95
|
# This method is expected to be used within Dynarex
|
90
|
-
|
96
|
+
|
91
97
|
kvx = self.to_kvx
|
92
98
|
|
93
|
-
xsl_buffer =
|
99
|
+
xsl_buffer = RXFReader.read(xslt).first
|
94
100
|
#jr100316 xslt = Nokogiri::XSLT(xsl_buffer)
|
95
|
-
#jr100316 xslt.transform(Nokogiri::XML(kvx.to_xml)).to_s
|
101
|
+
#jr100316 xslt.transform(Nokogiri::XML(kvx.to_xml)).to_s
|
96
102
|
Rexslt.new(xsl_buffer, kvx.to_xml).to_s
|
97
103
|
|
98
104
|
end
|
99
|
-
|
105
|
+
|
100
106
|
def to_kvx()
|
101
|
-
|
107
|
+
|
102
108
|
puts 'inside to_kvx'.info if @debug
|
103
109
|
kvx = Kvx.new(@h.to_h, debug: @debug)
|
104
|
-
|
110
|
+
|
105
111
|
if @callerx and @callerx.summary[:recordx_type] then
|
106
112
|
summary_fields = @callerx.summary.keys - [:recordx_type, \
|
107
113
|
:format_mask, :schema, :default_key]
|
108
114
|
summary_fields.each {|field| kvx.summary[field] = @callerx.summary[field] }
|
109
115
|
end
|
110
|
-
|
116
|
+
|
111
117
|
kvx
|
112
|
-
|
118
|
+
|
113
119
|
end
|
114
|
-
|
120
|
+
|
115
121
|
def to_s()
|
116
122
|
self.to_kvx.to_s
|
117
123
|
end
|
118
|
-
|
124
|
+
|
119
125
|
def to_xml()
|
120
126
|
|
121
127
|
def build(xml, h)
|
@@ -124,7 +130,7 @@ class RecordX
|
|
124
130
|
|
125
131
|
xml = RexleBuilder.new
|
126
132
|
|
127
|
-
Rexle.new(xml.root { build xml, h }).xml pretty: true
|
133
|
+
Rexle.new(xml.root { build xml, h }).xml pretty: true
|
128
134
|
end
|
129
135
|
|
130
136
|
def update(h)
|
@@ -134,16 +140,16 @@ class RecordX
|
|
134
140
|
private
|
135
141
|
|
136
142
|
def method_missing(method_name, *raw_args)
|
137
|
-
|
143
|
+
|
138
144
|
arg = raw_args.length > 0 ? raw_args.first : nil
|
139
145
|
|
140
146
|
attr_accessor2(method_name[/\w+/], arg)
|
141
|
-
arg ? self.send(method_name, arg) : self.send(method_name)
|
147
|
+
arg ? self.send(method_name, arg) : self.send(method_name)
|
142
148
|
end
|
143
149
|
|
144
150
|
def attr_accessor2(name,val=nil)
|
145
151
|
|
146
|
-
reserved_keywords = (
|
152
|
+
reserved_keywords = (
|
147
153
|
Object.public_methods | \
|
148
154
|
Kernel.public_methods | \
|
149
155
|
public_methods + [:method_missing]
|
@@ -153,13 +159,13 @@ class RecordX
|
|
153
159
|
if (reserved_keywords - exceptions - @h.keys).include? name.to_sym then
|
154
160
|
raise "recordx: reserved keyword *#{name}* can't be used as a field name"
|
155
161
|
end
|
156
|
-
|
162
|
+
|
157
163
|
self.instance_eval %Q{
|
158
|
-
|
164
|
+
|
159
165
|
def #{name}=(s)
|
160
|
-
|
166
|
+
|
161
167
|
puts 'inside #{name} assignment' if @debug
|
162
|
-
|
168
|
+
|
163
169
|
@#{name} = s.to_s
|
164
170
|
unless @h[:#{name}] == s.to_s then
|
165
171
|
@h[:#{name}] = s.to_s
|
@@ -168,19 +174,19 @@ class RecordX
|
|
168
174
|
end
|
169
175
|
|
170
176
|
}
|
171
|
-
|
177
|
+
|
172
178
|
# If this method has been monkey patched don't attempt to overwrite it
|
173
|
-
|
179
|
+
|
174
180
|
if not self.public_methods.include? name.to_sym then
|
175
|
-
self.instance_eval %Q{
|
181
|
+
self.instance_eval %Q{
|
176
182
|
def #{name}()
|
177
183
|
@#{name}
|
178
184
|
end
|
179
185
|
}
|
180
186
|
end
|
181
|
-
|
187
|
+
|
182
188
|
self.method((name + '=').to_sym).call val if val
|
183
|
-
|
189
|
+
|
184
190
|
end
|
185
191
|
|
186
|
-
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,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '0'
|
85
85
|
requirements: []
|
86
|
-
rubygems_version: 3.
|
86
|
+
rubygems_version: 3.2.22
|
87
87
|
signing_key:
|
88
88
|
specification_version: 4
|
89
89
|
summary: A kind of Hash which can also use accessor methods to store or retrieve values.
|
metadata.gz.sig
CHANGED
Binary file
|