xmlregistry_objects 0.7.3 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 072ddcd0246069df86016af7acefaec428107203
4
- data.tar.gz: e5cebcba71bf5f6c07b5111a1143c4aafe6c44fd
2
+ SHA256:
3
+ metadata.gz: cc95b8fd15a36a13fc93bd48f1bc0840cfadd1ff5cc9f0735e6bd65b2bc94ec6
4
+ data.tar.gz: 2bffbe5094f477efaf7a67eb734ad16f9a46314eeac3b3c85ac63a98e95dc8d4
5
5
  SHA512:
6
- metadata.gz: 1fbee0b507d20e398ff9482cd593334db409fee3212ef367fc00cd752d2b9f9db4e1aa26e052d5897f8d57c6f8d9df7db6aee6cfc968423164104bf0b081efea
7
- data.tar.gz: ae119c0d58ab1c45f9504357587d4f0e17652d0dbbf20244472f55ba92ffd03029ee978bf02ff85992530aa7a223577a39c618a43cc03014b63fb1139ab5f0cc
6
+ metadata.gz: 546866da99885b618030623ea8c5069cdabc2a24fd2ab5fd549eabbbd34d4a53b6898df666991cfe2f43247b1646e44ae3248d105cd2575d091f36cde623b2af
7
+ data.tar.gz: 0a9206005c018a091301ddfc90b72a0ddd842c3e0e8ab9b29df632594a531d7203d53449e14d65d951d8a59333a062c80ab3fa52d7f95dba47e7d9779b97becb
checksums.yaml.gz.sig CHANGED
Binary file
@@ -5,30 +5,36 @@
5
5
 
6
6
  require 'polyrex'
7
7
  require 'dws-registry'
8
+ require 'rxfreader'
8
9
 
9
10
 
10
11
  class XMLRegistryObjects
11
12
 
12
13
  attr_reader :to_h
13
14
 
14
- def initialize(reg, obj)
15
-
16
- polyrexdoc = if obj.is_a? Polyrex then
17
-
15
+ def initialize(reg, obj, log: nil)
16
+
17
+ @log = log
18
+ log.info 'XMLRegistryObjects/initialize: active' if log
19
+
20
+ polyrexdoc = if obj.is_a? Polyrex then
21
+
18
22
  obj
19
-
23
+
20
24
  elsif obj.is_a? String then
21
-
22
- buffer, type = RXFHelper.read obj
25
+
26
+ buffer, type = RXFReader.read obj
23
27
 
24
28
  if type == :url then
25
29
  Polyrex.new buffer
26
30
  else
27
- Polyrex.new.import "<?polyrex schema='entries/object[name, regkey]/"\
31
+ Polyrex.new.import "<?polyrex schema='entries/objectx[name, regkey]/"\
28
32
  "methodx[name,subkeyname]' delimiter=' = '?>\n" + obj
29
33
  end
30
34
  end
31
-
35
+
36
+ log.info 'XMLRegistryObjects/initialize: before @to_h' if log
37
+
32
38
  @to_h = polyrexdoc.records.inject({}) do |rtn, row|
33
39
 
34
40
  name, path = row.name, row.regkey[1..-2]
@@ -39,23 +45,23 @@ class XMLRegistryObjects
39
45
  def initialize(reg)
40
46
  @reg = reg
41
47
  end
42
-
48
+
43
49
  def last_modified()
44
50
  lm = @reg.get_key('#{path}').attributes[:last_modified]
45
51
  Time.parse(lm) if lm
46
52
  end
47
-
48
- def set(h)
49
-
53
+
54
+ def set(h)
55
+
50
56
  h.each {|key,value| self.method((key.to_s + '=').to_sym).call value }
51
-
57
+
52
58
  end
53
59
  "
54
60
 
55
61
  s = if row.records.any? then
56
62
 
57
63
  row.records.inject(base_methods) do |r, attr|
58
-
64
+
59
65
  attr_name, subkey = attr.name, attr.subkeyname[/\w+$/]
60
66
  key = path + '/' + subkey
61
67
 
@@ -67,56 +73,60 @@ class XMLRegistryObjects
67
73
  else
68
74
 
69
75
  a = reg.xpath("#{path}/*")
70
-
71
- a.inject(base_methods) do |r, x|
76
+
77
+ a.inject(base_methods) do |r, x|
72
78
 
73
79
  methods_name = subkey = x.name
74
80
 
75
- type = x.attributes[:type]
81
+ type = x.attributes[:type]
76
82
  key = path + '/' + subkey
77
-
78
- r << make_setdef(key, method_name=subkey)
79
83
 
80
- method_name += '?' if type and type == 'boolean'
84
+ r << make_setdef(key, method_name=subkey)
85
+
86
+ method_name += '?' if type and type == 'boolean'
81
87
  r << make_def(key, method_name)
82
88
 
83
89
  end
84
90
  end
85
91
 
92
+ log.info 'XMLRegistryObjects/initialize: before class_eval ' + klass.to_s if log
93
+
86
94
  klass.class_eval s
87
95
  rtn.merge name.to_sym => klass.new(reg)
88
96
 
89
97
  end
98
+
99
+ log.info 'XMLRegistryObjects/initialize: completed' if log
90
100
  end
91
-
101
+
92
102
  def define_methods()
93
103
  @to_h.each.map {|k,v| "define_method :#{k.to_s}, ->{h[:#{k}]}"}.join("\n")
94
104
  end
95
-
96
- # to use this method the client is expect to fetch the
97
- # hash object from the registry object e.g.
105
+
106
+ # to use this method the client is expect to fetch the
107
+ # hash object from the registry object e.g.
98
108
  # xro = XMLRegistryObjects.new(reg,list)
99
109
  # @h = xro.to_h
100
-
110
+
101
111
  def define_methods2(obj=nil)
102
-
112
+
103
113
  a = @to_h.each.map {|k,v| [k.to_s.to_sym, ->{@h[k.to_sym]} ] }
104
-
114
+
105
115
  if obj then
106
-
116
+
107
117
  a.each {|name, blk| obj.class.send(:define_method, name, blk) }
108
-
118
+
109
119
  else
110
-
120
+
111
121
  return a
112
-
122
+
113
123
  end
114
-
115
- end
124
+
125
+ end
116
126
 
117
127
  private
118
128
 
119
- def make_def(key, method_name)
129
+ def make_def(key, method_name)
120
130
  <<-EOF
121
131
  def #{method_name}()
122
132
  @reg.get_key('#{key}', auto_detect_type: true)
@@ -124,9 +134,9 @@ end
124
134
 
125
135
  EOF
126
136
  end
127
-
128
- def make_setdef(key, method_name)
137
+
138
+ def make_setdef(key, method_name)
129
139
  "def #{method_name}=(v) @reg.set_key '#{key}', v end\n"
130
- end
140
+ end
131
141
 
132
- end
142
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmlregistry_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,28 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MTExODE5MzE1OVoXDTE3MTExODE5MzE1OVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAO2W2oOYkPg8aof3ySqVkhUzbWkC8l/McDVQZBVR+6GX81K7a9otOP/wndHT
19
- Oq0YouVAFH8HEF1zvY9xwuxXSMJRhRZegizYm3WTePIxpNSs4FGIiG5+vlSCCPd1
20
- HQeWB4+m2liPy2XNyKjcacOPyDhzSNPm/OoiSpNHrOh/CUnLDfS6hnG7Pp8uN/FG
21
- 0oYaMLLnM+XoGhOeuXA191EoFw2XqQLPQ3twrDjYsjtpO5muh/Qgq+oVRLs5KyfN
22
- AQfWOs+WrmsSaKVuqKDeq0ej9mWTif6MHt0SjsZepvxuSdbGAAx2V8Enxpr/xeGT
23
- NmGfQJ+OyIYBwW9+ry0jm7HvSrECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQU+JjBp7btYgKRRbcC0kgjjXOq9t4wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEANXzdxcac
27
- 9+ro5EDNoip8Tt5/gfXQLeitx9AJKBk049CXj7aUVQo/kvC0uG98txkMXXTYsbvp
28
- nyc1i3EsQ1+qLvTeloWcNirSvqBhGp+ELJ5/TCiHPUjyQw3imIaaSbKU7cAfvXVm
29
- xY2RYI59JSE5T7KJpd2uIyOZAcOmQmYOwSxyLl2BWtsU2u6v/hFXGfMQYggaskz2
30
- b5n5Zg3VSfTc3BCXN2xUTpIFlo280xVt2nNvGvjcQQqjzjwXa/RvZKiCOZlJNjSo
31
- IkDYjSdYbCCIK75kuYlhmDctvkgCn+0ctaLyR/UzsKKMBw6vdLU9+jMjzJTBozL8
32
- nkAagQBjWS249A==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMjIyMjAzMzQwWhcN
15
+ MjMwMjIyMjAzMzQwWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDjoLXS
17
+ JY+GeI0u2RX39kso2JcNAsJ6/nlvNKRbADfUhw/J67b65yUVFYyUx/5bp3hf+Mc9
18
+ ZewemRjK8SouGnUNgToIjCklCpfR5CV/jj0ELMQ3MwiZWjnkEVouAGFxDuR5L7z6
19
+ ayd8gbpMx6XVdWCFLqwU0f94VHVU5i+ZAfaKmmcTC4rx3DN9Q4e85eUFuOLb9IaY
20
+ OzdXF162GC1TJ+CQz9rwa6RAWpMvAQOOS/0H/rgYcSvsnAkgGIq/lxdfTAVJ61Q/
21
+ xgKFbX75D4d2tyhlzXC2HpFmWJ/f630zh0r1rpIT/K2WY0jPV9cpsIYSFQrA6Wlp
22
+ pDcEPw6lryGXnluUmnmw+5sZ+6v9XedHI3OAoc1ZbNzAhu1zbm5j+D9De94bk3TM
23
+ p5fHGG49DG553os4sJImBazjKUbM6rwNUH1g3hNWvtHyP5q8I5hSH7F/9DCODwfQ
24
+ eil4CMfmalAZxnXhNd/R9IuS+Ry9uFPfnWQb7IZC5GlEQgSURY7vikaTNVECAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUYfu9sis1
26
+ o3vFFRPkh/7sVOBNwI8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAZNqTY2Edz/epqyDfis6xaOYVQtYEtzRD3v2pRPBx
29
+ 5y9MxMsbvDjZc/oMIg33p2Vl8g6++FblRMUpV73q76pMwmojAEQMek6cCpEFFEpk
30
+ ZLL2RX/zW4U4DS+NdC3lMCTIg9x2MeAiqpzbacMOztiZNvsoLBMBgNxhhN2CEJvd
31
+ TjtB0ua2T8QB1pLdi7YuhxSkIRqXFSvhvB+kkQrgj918kLhyVM2fG1bFhG7neTSe
32
+ HfpFDgLOjZODHv/XMDI3YtyOLvFmUcQZnGwLAlpDT/GoEF71Mt3Ncnt9Z2Qt5gkr
33
+ p0+dnQ2LSGJRkn/RkGz3HM7aJcEV/nZO5b/7h61JbQ6Sg9p6Ailmub27VF6YUsO5
34
+ fAZEEr9vu8+K5z8LD0W7sdGbUMiz6qLKYzL5A1ERYZBqlY7J6Bo0alRRclzDpcJV
35
+ xxskbsrcVBnIBOJst+8ciwIklNVWeyO9DgHgc7XczsjNVAwtBywJ2OqePLHwzypv
36
+ j1b+b2ovUi70hCFO+BJGE3t0
33
37
  -----END CERTIFICATE-----
34
- date: 2016-11-18 00:00:00.000000000 Z
38
+ date: 2022-02-22 00:00:00.000000000 Z
35
39
  dependencies:
36
40
  - !ruby/object:Gem::Dependency
37
41
  name: dws-registry
@@ -39,42 +43,42 @@ dependencies:
39
43
  requirements:
40
44
  - - "~>"
41
45
  - !ruby/object:Gem::Version
42
- version: '0.3'
46
+ version: '0.5'
43
47
  - - ">="
44
48
  - !ruby/object:Gem::Version
45
- version: 0.3.5
49
+ version: 0.5.0
46
50
  type: :runtime
47
51
  prerelease: false
48
52
  version_requirements: !ruby/object:Gem::Requirement
49
53
  requirements:
50
54
  - - "~>"
51
55
  - !ruby/object:Gem::Version
52
- version: '0.3'
56
+ version: '0.5'
53
57
  - - ">="
54
58
  - !ruby/object:Gem::Version
55
- version: 0.3.5
59
+ version: 0.5.0
56
60
  - !ruby/object:Gem::Dependency
57
61
  name: polyrex
58
62
  requirement: !ruby/object:Gem::Requirement
59
63
  requirements:
60
64
  - - "~>"
61
65
  - !ruby/object:Gem::Version
62
- version: '1.0'
66
+ version: '1.4'
63
67
  - - ">="
64
68
  - !ruby/object:Gem::Version
65
- version: 1.0.6
69
+ version: 1.4.0
66
70
  type: :runtime
67
71
  prerelease: false
68
72
  version_requirements: !ruby/object:Gem::Requirement
69
73
  requirements:
70
74
  - - "~>"
71
75
  - !ruby/object:Gem::Version
72
- version: '1.0'
76
+ version: '1.4'
73
77
  - - ">="
74
78
  - !ruby/object:Gem::Version
75
- version: 1.0.6
79
+ version: 1.4.0
76
80
  description:
77
- email: james@r0bertson.co.uk
81
+ email: digital.robertson@gmail.com
78
82
  executables: []
79
83
  extensions: []
80
84
  extra_rdoc_files: []
@@ -99,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
103
  - !ruby/object:Gem::Version
100
104
  version: '0'
101
105
  requirements: []
102
- rubyforge_project:
103
- rubygems_version: 2.5.1
106
+ rubygems_version: 3.2.22
104
107
  signing_key:
105
108
  specification_version: 4
106
109
  summary: Query the registry using objects built dynamically from a string which maps
metadata.gz.sig CHANGED
Binary file