Skip to content
This repository was archived by the owner on Dec 10, 2019. It is now read-only.

Commit 4899cd9

Browse files
committed
first batch of changes to migrate from direct dependence on mustache to
dependence on pattern engines
1 parent 4a9dec6 commit 4899cd9

File tree

3 files changed

+56
-48
lines changed

3 files changed

+56
-48
lines changed

builder/pattern_assembler.js

Lines changed: 38 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
/*
2-
* patternlab-node - v0.10.1 - 2015
3-
*
1+
/*
2+
* patternlab-node - v0.10.1 - 2015
3+
*
44
* Brian Muenzenmeyer, and the web community.
5-
* Licensed under the MIT license.
6-
*
7-
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
5+
* Licensed under the MIT license.
6+
*
7+
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
88
*
99
*/
1010

@@ -13,7 +13,13 @@
1313

1414
var pattern_assembler = function(){
1515

16-
//find and return any {{> template-name }} within pattern
16+
var fs = require('fs-extra'),
17+
of = require('./object_factory'),
18+
path = require('path'),
19+
patternEngines = require('./pattern_engines/pattern_engines');
20+
21+
// find and return any {{> template-name }} within pattern
22+
// TODO: delete, factored out
1723
function findPartials(pattern){
1824
var matches = pattern.template.match(/{{>([ ])?([A-Za-z0-9-]+)(?:\:[A-Za-z0-9-]+)?(?:(| )\(.*)?([ ])?}}/g);
1925
return matches;
@@ -33,30 +39,37 @@
3339
}
3440

3541
function renderPattern(template, data, partials) {
42+
debugger;
43+
// TODO:
44+
// choose an appropriate pattern engine
45+
// call and return result of its renderPattern method
46+
// OR MAYBE: this should just be a method of oPattern
47+
}
3648

37-
var mustache = require('mustache');
38-
39-
if(partials) {
40-
return mustache.render(template, data, partials);
41-
} else{
42-
return mustache.render(template, data);
43-
}
49+
function isPatternFile(filename, patternlab) {
50+
var engineNames = Object.keys(patternEngines);
51+
var supportedPatternFileExtensions = engineNames.map(function (engineName) {
52+
return patternEngines[engineName].fileExtension;
53+
});
54+
var extension = path.extname(filename);
55+
return (supportedPatternFileExtensions.lastIndexOf(extension) != -1);
4456
}
4557

58+
// given a pattern file, figure out what to do with it
4659
function processPatternFile(file, patternlab){
47-
var fs = require('fs-extra'),
48-
of = require('./object_factory'),
49-
path = require('path');
50-
5160
//extract some information
5261
var abspath = file.substring(2);
5362
var subdir = path.dirname(path.relative('./source/_patterns', file)).replace('\\', '/');
5463
var filename = path.basename(file);
5564

56-
//ignore _underscored patterns, json (for now), and dotfiles
57-
if(filename.charAt(0) === '_' || path.extname(filename) === '.json' || filename.charAt(0) === '.'){
65+
// ignore _underscored patterns, dotfiles, and anything not recognized by
66+
// a loaded pattern engine
67+
if (filename.charAt(0) === '_' ||
68+
filename.charAt(0) === '.' ||
69+
!isPatternFile(filename, patternlab)) {
5870
return;
5971
}
72+
console.log('found pattern', file);
6073

6174
//make a new Pattern Object
6275
var currentPattern = new of.oPattern(subdir, filename);
@@ -80,17 +93,13 @@
8093
}
8194

8295
function processPattern(currentPattern, patternlab, additionalData){
83-
84-
var fs = require('fs-extra'),
85-
mustache = require('mustache'),
86-
lh = require('./lineage_hunter'),
87-
ph = require('./parameter_hunter'),
88-
pph = require('./pseudopattern_hunter'),
89-
path = require('path');
96+
var lh = require('./lineage_hunter'),
97+
ph = require('./parameter_hunter'),
98+
pph = require('./pseudopattern_hunter');
9099

91100
var parameter_hunter = new ph(),
92-
lineage_hunter = new lh(),
93-
pseudopattern_hunter = new pph();
101+
lineage_hunter = new lh(),
102+
pseudopattern_hunter = new pph();
94103

95104
currentPattern.extendedTemplate = currentPattern.template;
96105

builder/patternlab.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
/*
2-
* patternlab-node - v0.10.1 - 2015
3-
*
1+
/*
2+
* patternlab-node - v0.10.1 - 2015
3+
*
44
* Brian Muenzenmeyer, and the web community.
5-
* Licensed under the MIT license.
6-
*
7-
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
5+
* Licensed under the MIT license.
6+
*
7+
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
88
*
99
*/
1010

@@ -15,7 +15,6 @@ var patternlab_engine = function () {
1515
fs = require('fs-extra'),
1616
extend = require('util')._extend,
1717
diveSync = require('diveSync'),
18-
mustache = require('mustache'),
1918
glob = require('glob'),
2019
of = require('./object_factory'),
2120
pa = require('./pattern_assembler'),
@@ -27,6 +26,7 @@ var patternlab_engine = function () {
2726
patternlab.package = fs.readJSONSync('./package.json');
2827
patternlab.config = fs.readJSONSync('./config.json');
2928

29+
3030
function getVersion() {
3131
console.log(patternlab.package.version);
3232
}
@@ -67,17 +67,16 @@ var patternlab_engine = function () {
6767
entity_encoder = new he(),
6868
pattern_exporter = new pe();
6969

70-
diveSync('./source/_patterns', function(err, file){
70+
diveSync('./source/_patterns', function(err, filePath){
7171
//log any errors
7272
if(err){
7373
console.log(err);
7474
return;
7575
}
76-
77-
pattern_assembler.process_pattern_file(file, patternlab);
78-
76+
pattern_assembler.process_pattern_file(filePath, patternlab);
7977
});
80-
//render all patterns last, so lineageR works
78+
79+
//render all patterns last, so lineage works
8180
patternlab.patterns.forEach(function(pattern, index, patterns){
8281
//render the pattern, but first consolidate any data we may have
8382
var allData = JSON.parse(JSON.stringify(patternlab.data));

builder/pseudopattern_hunter.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
/*
2-
* patternlab-node - v0.10.1 - 2015
3-
*
1+
/*
2+
* patternlab-node - v0.10.1 - 2015
3+
*
44
* Brian Muenzenmeyer, and the web community.
5-
* Licensed under the MIT license.
6-
*
7-
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
5+
* Licensed under the MIT license.
6+
*
7+
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
88
*
99
*/
1010

@@ -48,7 +48,7 @@
4848
variantFileData = pattern_assembler.merge_data(variantFileData, currentPattern.jsonFileData);
4949

5050
var variantName = pseudoPatterns[i].substring(pseudoPatterns[i].indexOf('~') + 1).split('.')[0];
51-
var patternVariant = new of.oPattern(currentPattern.subdir, currentPattern.fileName + '-' + variantName + '.mustache', variantFileData);
51+
var patternVariant = new of.oPattern(currentPattern.subdir, currentPattern.fileName + '-' + variantName + '.mustache', variantFileData);
5252

5353
//see if this file has a state
5454
pattern_assembler.setPatternState(patternVariant, patternlab);

0 commit comments

Comments
 (0)