Skip to content
Merged
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
2 changes: 2 additions & 0 deletions core/lib/list_item_hunter.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ var list_item_hunter = function () {
console.log('There was an error parsing JSON for ' + pattern.relPath);
console.log(err);
}

listData = plutils.mergeData(listData, pattern.listitems);
listData = pattern_assembler.parse_data_links_specific(patternlab, listData, 'listitems.json + any pattern listitems.json');

//iterate over each copied block, rendering its contents along with pattenlab.listitems[i]
for (var i = 0; i < repeatedBlockTemplate.length; i++) {
Expand Down
2 changes: 1 addition & 1 deletion core/lib/object_factory.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ var Pattern = function (relPath, data) {
this.fileExtension = pathObj.ext; // '.mustache'

// this is the unique name, subDir + fileName (sans extension)
this.name = this.subdir.replace(/[\/\\]/g, '-') + '-' + this.fileName; // '00-atoms-00-global-00-colors'
this.name = this.subdir.replace(/[\/\\]/g, '-') + '-' + this.fileName.replace('~', '-'); // '00-atoms-00-global-00-colors'

// the JSON used to render values in the pattern
this.jsonFileData = data || {};
Expand Down
17 changes: 11 additions & 6 deletions core/lib/pattern_assembler.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ var pattern_assembler = function () {
var path = require('path'),
fs = require('fs-extra'),
Pattern = require('./object_factory').Pattern,
pph = require('./pseudopattern_hunter'),
md = require('markdown-it')(),
plutils = require('./utilities'),
patternEngines = require('./pattern_engines');
Expand Down Expand Up @@ -123,6 +124,9 @@ var pattern_assembler = function () {
}

function processPatternIterative(relPath, patternlab) {

var pseudopattern_hunter = new pph();

//extract some information
var filename = path.basename(relPath);
var ext = path.extname(filename);
Expand Down Expand Up @@ -198,17 +202,18 @@ var pattern_assembler = function () {
//add currentPattern to patternlab.patterns array
addPattern(currentPattern, patternlab);

//look for a pseudo pattern by checking if there is a file containing same name, with ~ in it, ending in .json
pseudopattern_hunter.find_pseudopatterns(currentPattern, patternlab);

return currentPattern;
}

function processPatternRecursive(file, patternlab) {
var lh = require('./lineage_hunter'),
pph = require('./pseudopattern_hunter'),
lih = require('./list_item_hunter');

var lineage_hunter = new lh(),
list_item_hunter = new lih(),
pseudopattern_hunter = new pph();
list_item_hunter = new lih();

//find current pattern in patternlab object using var file as a partial
var currentPattern, i;
Expand Down Expand Up @@ -247,9 +252,6 @@ var pattern_assembler = function () {

//add to patternlab object so we can look these up later.
addPattern(currentPattern, patternlab);

//look for a pseudo pattern by checking if there is a file containing same name, with ~ in it, ending in .json
pseudopattern_hunter.find_pseudopatterns(currentPattern, patternlab);
}

function expandPartials(foundPatternPartials, list_item_hunter, patternlab, currentPattern) {
Expand Down Expand Up @@ -376,6 +378,9 @@ var pattern_assembler = function () {
},
parse_data_links: function (patternlab) {
parseDataLinks(patternlab);
},
parse_data_links_specific: function (patternlab, data, label){
return parseDataLinksHelper(patternlab, data, label)
}
};

Expand Down
1 change: 1 addition & 0 deletions core/lib/pseudopattern_hunter.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ var pseudopattern_hunter = function () {
var patternVariant = Pattern.create(variantFilePath, variantFileData, {
//use the same template as the non-variant
template: currentPattern.template,
fileExtension: currentPattern.fileExtension,
extendedTemplate: currentPattern.extendedTemplate,
isPseudoPattern: true,
basePattern: currentPattern,
Expand Down
2 changes: 1 addition & 1 deletion core/lib/ui_builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ var eol = require('os').EOL;

function addToPatternPaths(patternlab, patternTypeName, pattern) {
//this is messy, could use a refactor.
patternlab.patternPaths[patternTypeName][pattern.patternBaseName] = pattern.subdir.replace(/\\/g, '/') + "/" + pattern.fileName;
patternlab.patternPaths[patternTypeName][pattern.patternBaseName] = pattern.subdir.replace(/\\/g, '/') + "/" + pattern.fileName.replace('~', '-');
}

//todo: refactor this as a method on the pattern object itself once we merge dev with pattern-engines branch
Expand Down
57 changes: 0 additions & 57 deletions test/pattern_assembler_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -538,63 +538,6 @@
test.equals(bookendPattern.extendedTemplate.replace(/\s\s+/g, ' ').replace(/\n/g, ' ').trim(), expectedValue.trim());
test.done();
},
'processPatternIterative - ignores files that are variants' : function(test){
//arrange
var diveSync = require('diveSync');
var fs = require('fs-extra');
var pa = require('../core/lib/pattern_assembler');
var pattern_assembler = new pa();
var patterns_dir = './test/files/_patterns';
var patternlab = {};
//THIS IS BAD.
patternlab.config = fs.readJSONSync('./patternlab-config.json');
patternlab.config.paths.source.patterns = patterns_dir;

//patternlab.data = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'data.json'));
patternlab.data = {};
//patternlab.listitems = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'listitems.json'));
patternlab.listitems = {};
//patternlab.header = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'templates/pattern-header-footer/header.html'), 'utf8');
patternlab.header = '';
//patternlab.footer = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'templates/pattern-header-footer/footer.html'), 'utf8');
patternlab.footer = '';
patternlab.patterns = [];
patternlab.data.link = {};
patternlab.partials = {};

//act
diveSync(patterns_dir,
{
filter: function(path, dir){
if(dir){
var remainingPath = path.replace(patterns_dir, '');
var isValidPath = remainingPath.indexOf('/_') === -1;
return isValidPath;
}
return true;
}
},
function(err, file){
//log any errors
if(err){
console.log(err);
return;
}

pattern_assembler.process_pattern_iterative(path.resolve(file), patternlab);
}
);

//assert
var foundVariant = false;
for(var i = 0; i < patternlab.patterns.length; i++){
if(patternlab.patterns[i].fileName.indexOf('~') > -1){
foundVariant = true;
}
}
test.equals(foundVariant, false);
test.done();
},
'setState - applies any patternState matching the pattern' : function(test){
//arrange
var pa = require('../core/lib/pattern_assembler');
Expand Down