Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lib/extracter.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ var extracter = {
}
if (!_res[_uniqueMarkerName]) {
_res[_uniqueMarkerName]={
name : _word,
name : _word.startsWith("'") && _word.endsWith("'") === true ? _word.slice(1,-1) : _word,
type : 'object',
parent : _prevMarker,
parents : _parents.slice(0),
Expand Down Expand Up @@ -218,7 +218,7 @@ var extracter = {
// create the new array
if (!_res[_uniqueMarkerName]) {
_res[_uniqueMarkerName]={
name : _arrayName,
name : _arrayName.startsWith("'") && _arrayName.endsWith("'") === true ? _arrayName.slice(1,-1) : _arrayName,
type : (_isIteratorUsedInCurrentArray === true) ? 'array' : 'objectInArray',
parent : _prevMarker,
parents : _parents.slice(0),
Expand Down Expand Up @@ -293,7 +293,7 @@ var extracter = {
_objParent = _uniqueMarkerName;
}
var _xmlPart = {
attr : _word,
attr : _word.startsWith("'") && _word.endsWith("'") === true ? _word.slice(1,-1) : _word,
formatters : _formaters,
obj : _objParent,
pos : _markerPos,
Expand Down
51 changes: 51 additions & 0 deletions test/test.carbone.js
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,57 @@ describe('Carbone', function () {
});
});

describe('renderXML with whitesapce', function () {
it('should accept whitespace in json keys, with single quotes', function (done) {
var data = {
'new param' : 1
};
carbone.renderXML('<xml>{d.\'new param\'}</xml>', data, function (err, result) {
helper.assert(err+'', 'null');
helper.assert(result, '<xml>1</xml>');
done();
});
});
it('should accept whitespace in sub-objects', function (done) {
var data = {
'new param' : {
'second level yes' : 2
}
};
carbone.renderXML('<xml>{d.\'new param\'.\'second level yes\'}</xml>', data, function (err, result) {
helper.assert(err+'', 'null');
helper.assert(result, '<xml>2</xml>');
done();
});
});
it('should accept whitespace in array names and children', function (done) {
var data = {
'new param' : {
'second level yes' : [
{ 'sub obj' : 55 },
{ 'sub obj' : 46 }
]
}
};
carbone.renderXML('<xml>{d.\'new param\'.\'second level yes\'[1].\'sub obj\'}</xml>', data, function (err, result) {
helper.assert(err+'', 'null');
helper.assert(result, '<xml>46</xml>');
done();
});
});
it.skip('should accept whitespace in formatters dynamic paramaters', function (done) {
var data = {
'new param' : 1,
'other param' : 2
};
carbone.renderXML('<xml>{d.new param:print(.\'other param\')}</xml>', data, function (err, result) {
helper.assert(err+'', 'null');
helper.assert(result, '<xml>2</xml>');
done();
});
});
});

describe('renderXML with dash', function () {
it('should render an XML string with dash in json keys', function (done) {
var data = {
Expand Down