Skip to content

Commit

Permalink
cleaned up magic strings to config (C)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Lasky authored and Shuwen Qian committed Mar 3, 2016
1 parent 03de131 commit 938269d
Showing 1 changed file with 41 additions and 40 deletions.
81 changes: 41 additions & 40 deletions Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ var base64 = require('gulp-base64');
var minimist = require('minimist');
var open = require('gulp-open');

const C = {
var C = {
SRC:'src/',
BUILD: 'build/',
BUILD_DOCS: 'build_docs/',
Expand All @@ -58,18 +58,18 @@ const C = {
MODULE_HTML: 'mm-*.html',
SHARED: 'shared/',
BOWER: 'bower_components/',
SASS_INCLUDE: ['bower_components/bourbon/app/assets/stylesheets/', 'src/shared/sass/'],
LIVE_PORT: 8000,
DOCS_PORT: 8001
};



var PATCH_LIST = [
'bower_components/moment/min/moment.min.js'
j(C.BOWER, '/moment/min/moment.min.js')
];

var IS_DEBUG = !!gutil.env.debug;
console.log(IS_DEBUG);

function dbg(t) {
return gif(IS_DEBUG, debug({title:t}));
Expand All @@ -78,10 +78,10 @@ function dbg(t) {
/** BUILD **/

gulp.task('patch-lib', function() {
gulp.src(C.PATCH_LIST, {base: j(__dirname, 'bower_components')})
gulp.src(C.PATCH_LIST, {base: j(__dirname, C.BOWER)})
.pipe(dbg('patch-lib'))
.pipe(wrap("(function(define, require) { {{{contents}}} })();",{},{engine:"hogan"}).on('error',console.error))
.pipe(gulp.dest( j(__dirname, 'bower_components') ));
.pipe(gulp.dest( j(__dirname, C.BOWER) ));
});

gulp.task('clean', function() {
Expand All @@ -103,7 +103,7 @@ gulp.task('sass', function() {
var wrapper = fs.readFileSync(j(C.TEMPLATES,"style_module_template.html"),'utf8');
return gulp.src(j(C.SRC, C.MODULE_MASK,'*.scss'))
.pipe(cache('scss'))
.pipe(sass({includePaths: ['./bower_components/bourbon/app/assets/stylesheets/', './src/shared/sass/']}).on('error', sass.logError))
.pipe(sass({includePaths: C.SASS_INCLUDE}).on('error', sass.logError))
.pipe(postcss([autoprefixer({browsers: ['last 2 versions']})]))
.pipe(dbg('sass'))
.pipe(gulp.dest(C.BUILD))
Expand All @@ -117,8 +117,8 @@ gulp.task('sass', function() {
});

gulp.task('font', function() {
return gulp.src(C.SRC + 'shared/fonts/fonts.scss')
.pipe(sass({includePaths: ['./bower_components/bourbon/app/assets/stylesheets/', './src/shared/sass/']}).on('error', sass.logError))
return gulp.src(j(C.SRC, C.SHARED, '/fonts/fonts.scss'))
.pipe(sass({includePaths: C.SASS_INCLUDE}).on('error', sass.logError))
.pipe(dbg('font'))
.pipe(gulp.dest(C.BUILD + 'shared/fonts/'))
.pipe(wrap("<style>{{{contents}}}</style>",{},{engine:"hogan"}).on('error',console.log))
Expand Down Expand Up @@ -159,9 +159,9 @@ function vulcanizeSingle(opts, baseList, basePath) {
}

gulp.task('vulcanize', function() {
var moduleGlob = j(C.BUILD,'mm-*/mm-*.html');
var moduleGlob = j(C.BUILD,C.MODULE_MASK, C.MODULE_HTML);
var excludes = glob.sync(moduleGlob);
excludes.push('bower_components/polymer/polymer.html');
excludes.push(j(C.BOWER, '/polymer/polymer.html'));

var modules = gulp.src(moduleGlob)
.pipe(cache('v-modules'))
Expand Down Expand Up @@ -193,10 +193,10 @@ gulp.task('build', function(cb) {
});

gulp.task('build:prod', ['patch-lib', 'build'], function() {
var excludes = glob.sync(j(C.BUILD,'mm-*/mm-*.html'));
var excludes = glob.sync(j(C.BUILD,C.MODULE_MASK, C.MODULE_HTML));
excludes.push('bower_components/polymer/polymer.html');

var modules = gulp.src(j(C.BUILD,'mm-*/mm-*.html'))
var modules = gulp.src(j(C.BUILD,C.MODULE_MASK, C.MODULE_HTML))
.pipe(vulcanizeSingle({
inlineScripts: true,
inlineCss: true,
Expand Down Expand Up @@ -241,28 +241,28 @@ gulp.task('clean:docs', function() {
});

gulp.task('copy:docs', function() {
var assets = gulp.src('docs/images/**',{base:'./docs'});
var assets = gulp.src(j(C.DOCS,'/images/**'),{base:C.DOCS});
var cname = gulp.src('CNAME');
var license = gulp.src('LICENSE.txt');

var merged_static = merge(assets, cname, license)
.pipe(gulp.dest(C.BUILD_DOCS));

var bower_components = gulp.src(['bower_components/webcomponentsjs/**/*', 'bower_components/polymer/**/*'], {base:'bower_components'})
var bower_components = gulp.src([j(C.BOWER,'/webcomponentsjs/**/*'), j(C.BOWER,'/polymer/**/*')], {base:C.BOWER})
.pipe(dbg('copy-bower'))
.pipe(gulp.dest(C.BUILD_DOCS+'/bower_components/'));
.pipe(gulp.dest(j(C.BUILD_DOCS,C.BOWER)));

var lib = gulp.src(j(C.BUILD,'**'))
.pipe(dbg('copy-lib'))
.pipe(gulp.dest(j(C.BUILD_DOCS,'/bower_components/strand/dist')));
.pipe(gulp.dest(j(C.BUILD_DOCS,C.BOWER,'/strand/dist')));

return merge(bower_components, merged_static, lib);
});

gulp.task('sass:docs', function() {
return gulp.src('docs/**/*.scss')
return gulp.src(j(C.DOCS,'/**/*.scss'))
.pipe(dbg('sass-docs'))
.pipe(sass({includePaths: ['./bower_components/bourbon/app/assets/stylesheets/', './src/shared/sass/']}).on('error', sass.logError))
.pipe(sass({includePaths: C.SASS_INCLUDE}).on('error', sass.logError))
.pipe(postcss([autoprefixer({browsers: ['last 2 versions']})]))
.pipe(gulp.dest(C.BUILD_DOCS));
});
Expand Down Expand Up @@ -326,7 +326,7 @@ gulp.task('docs:templates', function() {
function injectModuleData(pkg, moduleMap, articleList, articleMap) {
return through.obj(function(file, enc, cb) {
var moduleDoc = JSON.parse(file.contents);
var examplePath = path.join(C.SRC, moduleDoc.name, 'example.html');
var examplePath = j(C.SRC, moduleDoc.name, 'example.html');
var example;
try {
example = fs.readFileSync(examplePath).toString('utf8');
Expand Down Expand Up @@ -358,7 +358,7 @@ gulp.task('docs:templates', function() {
articleList: articles,
articleMap: articleMap
};
var templatePath = path.join(__dirname,'docs/article_template.html');
var templatePath = j(__dirname, C.DOCS,'/article_template.html');
var templateString = fs.readFileSync(templatePath).toString('utf8');
var template = hogan.compile(templateString);
var doc = template.render(articleDoc, partialMap);
Expand All @@ -371,25 +371,25 @@ gulp.task('docs:templates', function() {
var pkg = getPkgInfo();

// Create moduleList from directory listing
var modules = glob.sync("mm-*/doc.json", {cwd:C.SRC});
var modules = glob.sync(j(C.MODULE_MASK, "/doc.json"), {cwd:C.SRC});
var moduleList = modules.map(function(name) { return name.replace('/doc.json',''); });
var moduleMap = moduleList.map(function(name) { return {name: name}; });

// Create behaviorsMap
var behaviors = glob.sync(j(C.SRC,'shared/behaviors/*.json'));
var behaviors = glob.sync(j(C.SRC, C.SHARED, '/behaviors/*.json'));
var behaviorsMap = {};
behaviors.forEach(function(behavior) {
var behaviorKey = behavior.replace(j(C.SRC,'shared/behaviors/'),'')
var behaviorKey = behavior.replace(j(C.SRC, C.SHARED, '/behaviors/'),'')
.replace('.json','')
.toLowerCase();
behaviorsMap[behaviorKey] = JSON.parse(fs.readFileSync(behavior));
});

// Create articleList and articleMap
var articles = glob.sync("*.md", {cwd:"./docs/articles/"});
var articleMap = JSON.parse(fs.readFileSync('./docs/articles/manifest.json'));
var articles = glob.sync("*.md", {cwd:j(C.DOCS, "/articles/")});
var articleMap = JSON.parse(fs.readFileSync(j(C.DOCS, '/articles/manifest.json')));
var articleList = articles.map(function(article) {
var file = fs.readFileSync('./docs/articles/'+article).toString('utf8'),
var file = fs.readFileSync(j(C.DOCS,'/articles/',article), 'utf8'),
name = file.split("\n")[0].replace("#",""),
key = path.basename(article, '.md'),
link = "article_" + key + ".html";
Expand All @@ -414,15 +414,15 @@ gulp.task('docs:templates', function() {
});

// Compile partials
var partials = glob.sync("*.html", {cwd:"./docs/", ignore: '(*_template).html'});
var partials = glob.sync("*.html", {cwd:C.DOCS, ignore: '(*_template).html'});
var partialMap = {};
partials.forEach(function(part) {
var name = part.replace('.html','');
var partialString = fs.readFileSync('./docs/'+part).toString('utf8');
var partialString = fs.readFileSync(j(C.DOCS,part), 'utf8');
partialMap[name] = hogan.compile(partialString);
});

var indexStream = gulp.src('./docs/index.html')
var indexStream = gulp.src(j(C.DOCS,'/index.html'))
.pipe(cache('docs_dex'))
.pipe(through.obj(function(file, enc, cb) {
// TODO: Put this in a closure
Expand All @@ -435,15 +435,15 @@ gulp.task('docs:templates', function() {
}))
.pipe(gulp.dest(C.BUILD_DOCS));

var moduleStream = gulp.src(j(C.SRC,'mm-*/doc.json'))
var moduleStream = gulp.src(j(C.SRC,C.MODULE_MASK,'/doc.json'))
.pipe(cache('docs_module'))
.pipe(injectBehaviorDocs(behaviorsMap))
.pipe(injectModuleData(pkg, moduleMap, articleList, articleMap))
.pipe(dbg('docs-modules'))
.pipe(through.obj(function(file, enc, cb) {
var moduleDoc = JSON.parse(file.contents);
var templatePath = path.join(__dirname,'docs/component_template.html');
var templateString = fs.readFileSync(templatePath).toString('utf8');
var templatePath = j(__dirname,C.DOCS,'/component_template.html');
var templateString = fs.readFileSync(templatePath, 'utf8');
var template = hogan.compile(templateString);
var doc = template.render(moduleDoc, partialMap);
file.contents = new Buffer(doc, enc);
Expand All @@ -458,7 +458,7 @@ gulp.task('docs:templates', function() {
.pipe(gulp.dest(C.BUILD_DOCS))
.on('error',console.log);

var articleStream = gulp.src('./docs/articles/*.md')
var articleStream = gulp.src(j(C.DOCS,'/articles/*.md'))
.pipe(cache('docs_article'))
.pipe(marked().on('error',console.log))
.pipe(injectArticleData(pkg, moduleMap, articleList, articleMap))
Expand All @@ -481,24 +481,25 @@ gulp.task('gh-pages', function() {
/** LIVE **/

gulp.task('watch', function () {
gulp.watch(j(C.SRC,'mm-*/*.scss'), ['sass']);
gulp.watch(j(C.SRC,'mm-*/*.html'), ['copy', 'vulcanize']);
gulp.watch(j(C.SRC, C.MODULE_MASK, '/*.scss'), ['sass']);
gulp.watch(j(C.SRC, C.MODULE_MASK, C.MODULE_HTML), ['copy', 'vulcanize']);
gulp.watch(j(C.SRC, C.SHARED, '**'), ['copy']);
});

gulp.task('index', function() {
var modules = glob.sync("mm-*/index.html", {cwd:C.SRC});
var modules = glob.sync(j(C.MODULE_MASK,"/index.html"), {cwd:C.SRC});
var moduleList = modules.map(function(name) { return name.replace('/index.html',''); });
var moduleMap = {modules: moduleList};
var templatePath = path.join(__dirname,'gulp/templates/index_template.html');
var templateString = fs.readFileSync(templatePath).toString('utf8');
var templatePath = j(__dirname, C.TEMPLATES, '/index_template.html');
var templateString = fs.readFileSync(templatePath, 'utf8');
var template = hogan.compile(templateString);
var index = template.render(moduleMap);
fs.writeFileSync(j(C.BUILD,'index.html'), index);
});

gulp.task('server', function() {
var server = connect()
.use('/bower_components', serveStatic('./bower_components'))
.use('/bower_components', serveStatic(C.BOWER))
.use(serveStatic(C.BUILD))
.listen(C.LIVE_PORT);

Expand All @@ -511,7 +512,7 @@ gulp.task('server', function() {
gulp.task('live', ['index', 'watch', 'server']);

gulp.task('watch:docs', function() {
gulp.watch(['docs/**/*.md', C.SRC + '**/doc.json'], ['docs:templates']);
gulp.watch([j(C.DOCS,'/**/*.md'), C.SRC + '**/doc.json'], ['docs:templates']);
});

gulp.task('server:docs', function() {
Expand Down

0 comments on commit 938269d

Please sign in to comment.