Skip to content

Commit

Permalink
parsing with outputfileSuffix accounted for
Browse files Browse the repository at this point in the history
fixed all unit tests
fix pattern-lab#428
  • Loading branch information
bmuenzenmeyer committed Aug 16, 2016
1 parent cfee9ff commit 6c0e72f
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 6 deletions.
23 changes: 20 additions & 3 deletions core/lib/pattern_assembler.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ var pattern_assembler = function () {
return patternlab.patterns[i];
}
}
console.error('Could not find pattern with partial ' + partialName);
if (patternlab.config.debug) {
console.error('Could not find pattern with partial ' + partialName);
}
return undefined;
}

Expand Down Expand Up @@ -92,7 +94,7 @@ var pattern_assembler = function () {
function addPattern(pattern, patternlab) {

//add the link to the global object
patternlab.data.link[pattern.patternPartial] = '/patterns/' + pattern.patternLink;
patternlab.data.link[pattern.patternPartial] = '/patterns/' + pattern.patternLink.replace('.html', patternlab.config.outputFileSuffixes.rendered + '.html');

//only push to array if the array doesn't contain this pattern
var isNew = true;
Expand Down Expand Up @@ -412,27 +414,42 @@ var pattern_assembler = function () {
function parseDataLinksHelper(patternlab, obj, key) {
var linkRE, dataObjAsString, linkMatches;

//check for link.patternPartial
linkRE = /link\.[A-z0-9-_]+/g;

//stringify the passed in object
dataObjAsString = JSON5.stringify(obj);
if (!dataObjAsString) { return obj; }

//find matches
linkMatches = dataObjAsString.match(linkRE);

if (linkMatches) {
for (var i = 0; i < linkMatches.length; i++) {
var dataLink = linkMatches[i];
if (dataLink && dataLink.split('.').length >= 2) {

//get the partial the link refers to
var linkPatternPartial = dataLink.split('.')[1];
var pattern = getPartial(linkPatternPartial, patternlab);
if (pattern !== undefined) {

//get the full built link and replace it
var fullLink = patternlab.data.link[linkPatternPartial];
if (fullLink) {
fullLink = path.normalize(fullLink).replace(/\\/g, '/');
if (patternlab.config.debug) {
console.log('expanded data link from ' + dataLink + ' to ' + fullLink + ' inside ' + key);
}

//also make sure our global replace didn't mess up a protocol
fullLink = fullLink.replace(/:\//g, '://');
dataObjAsString = dataObjAsString.replace(dataLink, fullLink);
}
} else {
console.log('pattern not found for', dataLink, 'inside', key);
if (patternlab.config.debug) {
console.log('pattern not found for', dataLink, 'inside', key);
}
}
}
}
Expand Down
10 changes: 9 additions & 1 deletion test/lineage_hunter_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ function createBasePatternLabObject() {
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered: ''
}
};
pl.data = {};
Expand Down Expand Up @@ -111,7 +114,12 @@ exports['lineage hunter '] = {
"lineageR": [],
"lineageRIndex": []
}
]
],
config: {
outputFileSuffixes: {
rendered: ''
}
}
};

var lineage_hunter = new lh();
Expand Down
5 changes: 4 additions & 1 deletion test/list_item_hunter_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@
"source": {
"patterns": "./test/files/_patterns"
}
}
},
"outputFileSuffixes": {
"rendered": ''
}
},
"partials" : {},
"patterns" : []
Expand Down
34 changes: 33 additions & 1 deletion test/pattern_assembler_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
var patternlab = {};
patternlab.config = fs.readJSONSync('./patternlab-config.json');
patternlab.config.paths.source.patterns = patterns_dir;
patternlab.config.outputFileSuffixes = {rendered : ''};

//patternlab.data = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'data.json'));
patternlab.data = {};
Expand Down Expand Up @@ -73,6 +74,9 @@
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered : ''
}
};
pl.data = {};
Expand Down Expand Up @@ -113,6 +117,9 @@
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered : ''
}
};
pl.data = {};
Expand Down Expand Up @@ -154,6 +161,9 @@
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered : ''
}
};
pl.data = {};
Expand Down Expand Up @@ -193,6 +203,9 @@
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered : ''
}
};
pl.data = {};
Expand Down Expand Up @@ -233,6 +246,9 @@
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered : ''
}
};
pl.data = {};
Expand Down Expand Up @@ -274,6 +290,9 @@
source: {
patterns: patterns_dir
}
},
outputFileSuffixes: {
rendered : ''
}
};
pl.data = {};
Expand Down Expand Up @@ -356,6 +375,7 @@
//THIS IS BAD
patternlab.config = fs.readJSONSync('./patternlab-config.json');
patternlab.config.paths.source.patterns = patterns_dir;
patternlab.config.outputFileSuffixes = { rendered : '' };
patternlab.data = {};
patternlab.listitems = {};
patternlab.header = {};
Expand All @@ -364,7 +384,17 @@
//patternlab.listitems = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'listitems.json'));
//patternlab.header = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'templates/pattern-header-footer/header.html'), 'utf8');
//patternlab.footer = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'templates/pattern-header-footer/footer.html'), 'utf8');
patternlab.patterns = [];
patternlab.patterns = [
{
patternPartial: 'twitter-brad'
},
{
patternPartial: 'twitter-dave'
},
{
patternPartial: 'twitter-brian'
}
];
patternlab.data.link = {};
patternlab.partials = {};

Expand Down Expand Up @@ -454,6 +484,7 @@
patternlab.partials = {};
patternlab.data = {link: {}};
patternlab.config = { debug: false };
patternlab.config.outputFileSuffixes = {rendered : ''};

var pattern = new Pattern('00-test/01-bar.mustache');
pattern.extendedTemplate = 'barExtended';
Expand All @@ -476,6 +507,7 @@
patternlab.partials = {};
patternlab.data = {link: {}};
patternlab.config = { debug: false };
patternlab.config.outputFileSuffixes = {rendered : ''};

var pattern = new Pattern('00-test/01-bar.mustache');
pattern.extendedTemplate = undefined;
Expand Down
1 change: 1 addition & 0 deletions test/pseudopattern_hunter_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ exports['pseudopattern_hunter'] = {
pl.patterns = [];
pl.partials = {};
pl.config.patternStates = {};
pl.config.outputFileSuffixes = { rendered: ''}

var atomPattern = new Pattern('00-test/03-styled-atom.mustache');
atomPattern.template = fs.readFileSync(patterns_dir + '00-test/03-styled-atom.mustache', 'utf8');
Expand Down

0 comments on commit 6c0e72f

Please sign in to comment.