rexle-builder 0.5.0 → 1.0.2

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
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