xmlregistry_objects 0.7.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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