File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed
Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,9 @@ module.exports = class XMLNode
2828 if _ .isArray name
2929 for item in name
3030 lastChild = @ element item
31+ else if _ .isFunction name
32+ name = name .apply ()
33+ lastChild = @ element name
3134 else if _ .isObject name
3235 # evaluate functions
3336 for own key, val of name
@@ -62,6 +65,7 @@ module.exports = class XMLNode
6265
6366 else
6467 name = ' ' + name
68+
6569 # text node
6670 if @stringify .convertTextKey and name .indexOf (@stringify .convertTextKey ) == 0
6771 lastChild = @ text text
Original file line number Diff line number Diff line change @@ -180,5 +180,27 @@ vows
180180 ' </myroot>'
181181
182182 assert .strictEqual topic .end (), xml
183+
184+ ' From JS object (simple array)' :
185+ topic : () ->
186+ obj = [
187+ " one"
188+ " two"
189+ () -> return " three"
190+ ]
191+
192+ xmlbuilder .create (' root' , { headless : true })
193+ .ele (obj)
194+
195+ ' resulting XML ' : (topic ) ->
196+ xml = ' <root>' +
197+ ' <one/>' +
198+ ' <two/>' +
199+ ' <three/>' +
200+ ' </root>'
201+
202+ assert .strictEqual topic .end (), xml
203+
204+
183205 .export (module )
184206
You can’t perform that action at this time.
0 commit comments