rexle-builder 0.5.0 → 1.0.2

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
2
  SHA256:
3
- metadata.gz: 6c10f565f608cd8850c3653410cb91c024f8121d96154ba2080ee60a878b9dbb
4
- data.tar.gz: 0b67e9ee49fdcdd241d0d83e1e8e3cbd67e3de067a904169eff4b0387932ba65
3
+ metadata.gz: 173cd08ae892bc695eba952bfbe63fc021ef7a3fd0241b399e36cff7a8c1b5c8
4
+ data.tar.gz: 2e31849b636155a8251e1a2a06620f33b1b868a7fc1d90cca981619a76041f9b
5
5
  SHA512:
6
- metadata.gz: 7a9f3c513c20603e72ea209bee4172c35bf87cf6ab3efbee6c73fcea804f21ff7d6852e6e28b1ff8e27d8799ad43dc744ae3aaea95a136cbd2c3b04611c9fc55
7
- data.tar.gz: 8dc6ccdcd3d92ba330739d11eb8d898c5d99587ec89fb47a450d09e4ac8dd2389175264c19ff49f01d844966e8ac26262ada5bb0bec935287d3d29108e072580
6
+ metadata.gz: b16a7f83b82355b14e61f320a4f032ffa29697fe6850b386490754da64a1cf19eced22b92c49deba892ed1bcd616978065ce0f27e0c342b2e4f0f10bc468152f
7
+ data.tar.gz: 75ea0138a555d42c640f94fe7600f8e0970e2e0ba58760a36af1cdcf17479fb33108decbee4a6fae604541a674755dace8c0493c711e794bc0cff507ed1841c4
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -20,7 +20,7 @@ class RexleBuilder
20
20
 
21
21
  end
22
22
 
23
- def initialize(obj=nil, debug: false)
23
+ def initialize(obj=nil, root: 'root', debug: false)
24
24
 
25
25
  @debug = debug
26
26
  @a = []
@@ -32,7 +32,7 @@ class RexleBuilder
32
32
  key = obj.keys.first
33
33
 
34
34
  if obj.length > 1 or obj[key].is_a?(Array) or obj[key].is_a?(String) then
35
- self.root { buildx obj}
35
+ self.send(root.to_sym) { buildx obj}
36
36
  else
37
37
  self.send(key.to_sym) {buildx obj[key]}
38
38
  end
@@ -51,10 +51,23 @@ class RexleBuilder
51
51
 
52
52
  def method_missing(sym, *args)
53
53
 
54
- args << '' if args.last.is_a? Hash
55
- value, attributes = args.reverse
54
+ puts 'args: ' + args.inspect if @debug
56
55
 
57
- value = Rexle.new(value).to_a if value =~ /^<.*>$/
56
+ value = args.find {|x| x.is_a? String} || ''
57
+ attributes, obj = args.select {|x| x.is_a? Hash}
58
+
59
+ # The obj is an optional Hash object used to build nested XML
60
+ # after the current element
61
+
62
+ if value =~ /^<.*>$/ then
63
+
64
+ a = [
65
+ sym.to_s,
66
+ attributes,
67
+ *Rexle.new("<root>%s</root>" % value, debug: @debug).to_a[2..-1]
68
+ ]
69
+
70
+ end
58
71
 
59
72
  if @debug then
60
73
  puts 'sym: ' + sym.inspect
@@ -62,8 +75,10 @@ class RexleBuilder
62
75
  end
63
76
 
64
77
  # reserved keywords are masked with ._ e.g. ._method_missing
65
- a = [sym.to_s.sub(/^(?:\._|_)/,'').sub(/^cdata!$/,'![')\
78
+ a ||= [sym.to_s.sub(/^(?:\._|_)/,'').sub(/^cdata!$/,'![')\
66
79
  .sub(/^comment!$/, '!-'), attributes || {}, value || '']
80
+
81
+ a.concat RexleBuilder.new(obj, debug: false).to_a[3..-1] if obj
67
82
 
68
83
  if @namespace then
69
84
  a.first.prepend(@namespace + ':')
@@ -115,7 +130,7 @@ class RexleBuilder
115
130
 
116
131
  else
117
132
 
118
- self.send(key.to_sym, value)
133
+ self.send(key.to_sym, value.to_s)
119
134
 
120
135
  end
121
136
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rexle-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwNDIxMTc0OTMzWhcN
15
- MjAwNDIwMTc0OTMzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDPTWCu
17
- 5qtl5scAzUKl1043ftug6+rjNCxNxzJ3aCAvrHEcIp+Dmo5KZ9SJ+LPXuxG7bans
18
- zLqhI3ab7XN5x3QE2d99DxBU/UiPT/svUaZG7A4HxbItfwIu59p8XoaMFiuQ/uAh
19
- SG+KxKTjlrmoj8HE5RmXmMawEeCeSnm//6544J63PMiSpXF97NOFlte2cu+95Ht5
20
- jG/r8At0BlAIUr2PuPiBnHkaCxjMOMbpZG77X7Mhs2XWy/VDA+OOyKfJOSv1cG+h
21
- 1D4QaFLA2QvC6yO2aW+q4D+96syVNRxgCWVqZsVWBvdNvPY/8o0o7++iWReVbLOz
22
- SnlIaJiT667XnaVZfzBmiQfhCJq+6Mn9XyIDt20KLl9VekHCMLIzb8zvEoYjNVMC
23
- jmxdrNZv4zpbylEfnUc6fXn4HdcwqySDGdN/NfWRv8BbKUMc/VvKp36KML/79anu
24
- mvVILViiYBRNNC6Bc5kNd9DWIz1e/NvUiFaAKTTMeq3bPMdFFaEONK13W9cCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUYuQiuNhp
26
- uEb3vp8rBGqSaPvMeQ8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNTAxMTgyMTU4WhcN
15
+ MjEwNTAxMTgyMTU4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDXvcGF
17
+ KAsFoSJW5WibJ3BCxoe5RyUNGARFsSo+Y755n9YmTEoL9jCNkxHCyZAPJSXeZJlV
18
+ jM1LqYD6n9MW73o0B7vy9Rq1n49cWIliXYrkIvhLlS7qviVg+ij8/o36LVeK4/4d
19
+ Z5d+jRyr6tovVn6Hlqs8qoMdI4lOj1f3yb2kFhbkW2Zx/O+4TMFvQT5/pc0/JcMM
20
+ b4SjzEZ8/aamSpjBNCIfML4pu2NNIaD/Zt8fLAa8kXGxCG47YP1rrnPuggz5YaOh
21
+ 0AgC4f2EKjfBqGcmgQ4QHOZ4GLf5pLPdILZk6dwCE6nwg3MLR+KDzuoHOppbzgpi
22
+ bHBVJ2mJczOpK4b1GQ0h8fb5HzJtFUrw6iRBwiPTKtbrh9x2QHS+npbKLbDdpjvL
23
+ b4u1krO1KazyhveIvcdScQ9+UbW5DxwYABoQ2VyRDplBn5c6+FTgSi5visvrrJTv
24
+ oqG6wLRxiTU9KRN24d7yEO0jrZf4PvCCLEAs/OnNzvJphQ2UgECBSstkjxkCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUjwkszDfc
26
+ EtAc5VTBGeONI5ddrI8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAM5FoA1+Njl5VUHxfdkhgSdwN9BAvWPrfTnTmMFGk
29
- bdTmyTzx59RxE32NZ5DV58YYhoDvGXDlFgSnyXtPJ6oOrD3W+DoIB0Y5bldKzsnV
30
- WetOe4reShq1S3C6TcfDaZZ5MD93/x96Wob1i+HcQGVr9IdKKwzPdDgFPQBVQ33k
31
- oMtKLObpB0rYunHMB9vZf6wZmx1gRmUgZIAXhWH2R/DFKvGlV3uiE1ZwMU2FCfYW
32
- 86I8wDbIfgnMwo2e71hi2Q8K/wq745zKVGU1lTmYMMPrPqk2miOj9yc/hA00t2p/
33
- GWvIEbWY0wcO7pMzsgnS3CRBk34GDzKJFNfW/hpoUQJFdqHzdlLJ62n6lm0YIjTx
34
- eSh+3/Jj0ywze2f489x1fzlEb25Y4evn34dMzfOx8s4rsdvtnGaPieCcagQeBEnv
35
- mhjduVy/qI0Fq2iBzsi+riXduSKKTKrvgbTbDfkk7gZK2Xb14hLgVeNOBxhvWUGj
36
- Boxgzq1tc6BbNomHiuZGxQTh
28
+ BgkqhkiG9w0BAQsFAAOCAYEAWAyU3Ht4sJy3dsUJ0EZTRTyamnWQk2p0Rb1SqqHp
29
+ 2wM2KLZVluuyM5kQ9IsI4UCtB4C6uvFu9P4JX9dWF6JTU0UQKvsgbPH1i+7sXUUf
30
+ gnBfsdfqWmmYU0y+m05DYgTYOOTPBY7nhM1Ms5zrkHfw7MdddTMIhPw/kuyqRHc6
31
+ vP8mNUJD2sr4untuOFdOBrFVcjylY8IHTR/aVINbQOh53r1TD8ATROvB9MEaHbEQ
32
+ LLr+c9+ti0wCZiHwd0o5jZBrH4hDrybFR9Dx61GZrLwaoDorq/nKnaIHikVGAUMX
33
+ 7zfbefTm9GvWrDQTjESHOfLVzjvcVR3/lLdDy914oSbA3+v9a2xsyZzVXKYADidr
34
+ LxGza+bzBCYgXoht0vSUR82d8uH+YdngvcK99G+3T8W53ikFDF2wS0l57yF9jfks
35
+ rC7AiWdayhS+wLWd/i/UtpYL25JcgKdaq24E/7+vB1EPRzPsDJrx8AzYo759WDob
36
+ o0Nd2o91GHfpqyL9snw6G3Dl
37
37
  -----END CERTIFICATE-----
38
- date: 2019-08-09 00:00:00.000000000 Z
38
+ date: 2020-06-22 00:00:00.000000000 Z
39
39
  dependencies: []
40
40
  description:
41
41
  email: james@jamesrobertson.eu
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  requirements: []
66
- rubygems_version: 3.0.1
66
+ rubygems_version: 3.0.3
67
67
  signing_key:
68
68
  specification_version: 4
69
69
  summary: Generates XML, by producing an array of raw XML elements which can parsed
metadata.gz.sig CHANGED
Binary file