From 8f36bab2367ad792559750833722fa3690db75d8 Mon Sep 17 00:00:00 2001
From: Alison Monteiro <alisonmonteiro.10@gmail.com>
Date: Sun, 4 Dec 2016 22:10:39 -0300
Subject: [PATCH 1/4] refactor(gulp): using some es6 and making some
 refactoring

---
 gulpfile.js | 126 +++++++++++++++++++++++-----------------------------
 1 file changed, 55 insertions(+), 71 deletions(-)

diff --git a/gulpfile.js b/gulpfile.js
index 13ba09a..bfdc52b 100755
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,83 +1,67 @@
-// Modules
-// --------------------------------------------------------- //
-var gulp            = require('gulp'),
-    gulpsync        = require('gulp-sync')(gulp),
-    requireDir      = require('require-dir'),
-    packageJson     = require('./package.json');
+const gulp = require('gulp');
+const gulpSync = require('gulp-sync')(gulp);
+const requireDir = require('require-dir');
+const packageJson = require('./package.json');
 
-
-// Config & Paths
-// --------------------------------------------------------- //
-gulp.config = {
-  packageJson: packageJson,
-  compressed: true,
-  format: packageJson.projectFormat ? packageJson.projectFormat : 'default',
-  localhost: 'localhost',
-  port: '3000'
+const baseConfig = {
+	port: '3000',
+	localhost: 'localhost',
+	packageJson: packageJson,
+	format: packageJson.projectFormat ? packageJson.projectFormat : 'default',
+	compressed: true
 };
 
-// Paths
-gulp.paths = {
-  default:
-  {
-    basePath: 'www/',
-    scripts:  'src/js/**/*.js',
-    scriptsDest: 'www/js',
-    styles: 'src/css/**/*.sass',
-    stylesDest: 'www/css',
-    images: 'src/images/**/*.*',
-    imagesDest: 'www/images',
-    pages: 'src/**/*.php',
-    pagesDest: 'www/',
-    fonts: 'src/fonts/**/*.*',
-    fontsDest: 'www/fonts'
-  },
-  wordpress:
-  {
-    basePath: 'wordpress/',
-    scripts: 'src/js/**/*.js',
-    scriptsDest: 'wordpress/wp-content/themes/'+packageJson.name+'/js',
-    styles: 'src/css/**/*.sass',
-    stylesDest: 'wordpress/wp-content/themes/'+packageJson.name+'/css',
-    images: 'src/images/**/*.*',
-    imagesDest: 'wordpress/wp-content/themes/'+packageJson.name+'/images',
-    pages: 'src/**/*.php',
-    pagesDest: 'wordpress/wp-content/themes/'+packageJson.name,
-    fonts: 'src/fonts/**/*.*',
-    fontsDest: 'wordpress/wp-content/themes/'+packageJson.name+'/fonts',
-    pluginsWp: 'plugins/**/*.*',
-    themesWp: 'wordpress/wp-content/themes/',
-    styleWp: 'src/style.css',
-    configWp: 'wp-config.php'
-  }
+const wpThemePath = 'wordpress/wp-content/themes/' + packageJson.name;
+const paths = {
+	default: {
+		basePath: 'www/',
+		pagesDest: 'www/',
+		stylesDest: 'www/css',
+		fontsDest: 'www/fonts',
+		imagesDest: 'www/images',
+		scriptsDest: 'www/js'
+	},
+	wordpress: {
+		basePath: 'wordpress/',
+		pluginsWp: 'plugins/**/*.*',
+		styleWp: 'src/style.css',
+		configWp: 'wp-config.php',
+		pagesDest: wpThemePath,
+		fontsDest: wpThemePath + '/fonts',
+		imagesDest: wpThemePath + '/images',
+		stylesDest: wpThemePath + '/css',
+		scriptsDest: wpThemePath + '/js',
+		themesWp: 'wordpress/wp-content/themes/'
+	}
 };
 
-gulp.paths = gulp.paths[gulp.config.format];
+const devPaths = {
+	pages: 'src/**/*.php',
+	scripts: 'src/js/**/*.js',
+	styles: 'src/css/**/*.sass',
+	images: 'src/images/**/*.*',
+	fonts: 'src/fonts/**/*.*'
+};
 
+gulp.paths = Object.assign(devPaths, paths[baseConfig.format]);
+gulp.config = baseConfig;
 
-// Tasks
-// --------------------------------------------------------- //
+// Gulp tasks
 requireDir('gulp_tasks');
 
-// Watch
-// --------------------------------------------------------- //
-gulp.task('watch',function(){
-  gulp.watch(gulp.paths.styles, ['styles']);
-  gulp.watch(gulp.paths.scripts, ['scripts']);
-  gulp.watch(gulp.paths.pages, ['pages']);
-  gulp.watch(gulp.paths.images, ['images']);
-  gulp.watch(gulp.paths.fonts, ['fonts']);
-  gulp.watch(gulp.paths.fonts, ['fonts']);
-});
+gulp.task('default', gulpSync.sync(['build', 'watch', 'connect-sync']));
 
-// Default
-var defautTasks = ['build', 'watch', 'connect-sync'];
-gulp.task('default', gulpsync.sync(defautTasks));
+gulp.task('wp', gulpSync.sync(['wp-install']));
 
-// Install wp
-var installWpTasks = ['wp-install'];
-gulp.task('wp', gulpsync.sync(installWpTasks));
+gulp.task('build', gulpSync.sync([
+	'clean', 'styles', 'scripts', 'pages', 'images', 'fonts', 'libs'
+]));
 
-// Build
-var buildTasks = ['clean', 'styles', 'scripts', 'pages', 'images', 'fonts', 'libs'];
-gulp.task('build', gulpsync.sync(buildTasks));
+gulp.task('watch', function() {
+	gulp.watch(gulp.paths.styles, ['styles']);
+	gulp.watch(gulp.paths.scripts, ['scripts']);
+	gulp.watch(gulp.paths.pages, ['pages']);
+	gulp.watch(gulp.paths.images, ['images']);
+	gulp.watch(gulp.paths.fonts, ['fonts']);
+	gulp.watch(gulp.paths.fonts, ['fonts']);
+});
\ No newline at end of file

From 4034e3a9760d5800fb0890eb0b77646afdc30afb Mon Sep 17 00:00:00 2001
From: Alison Monteiro <alisonmonteiro.10@gmail.com>
Date: Sun, 4 Dec 2016 23:16:23 -0300
Subject: [PATCH 2/4] refactor(gulp): applying .editorconfig pattern on gulp
 tasks

* using tabs instead of spaces

plus: using more es6 :tada:
---
 gulp_tasks/browser-sync.js |  15 +++--
 gulp_tasks/clean.js        |   9 +--
 gulp_tasks/connect-sync.js |  27 ++++-----
 gulp_tasks/fonts.js        |  13 ++---
 gulp_tasks/images.js       |  22 +++-----
 gulp_tasks/init.js         |   8 +--
 gulp_tasks/libs.js         |  93 +++++++++++++++----------------
 gulp_tasks/pages.js        |  29 +++++-----
 gulp_tasks/reload.js       |   9 +--
 gulp_tasks/scripts.js      |  25 ++++-----
 gulp_tasks/set-format.js   |  12 ++--
 gulp_tasks/styles.js       |  56 +++++++++----------
 gulp_tasks/wp-build.js     |  32 +++++------
 gulp_tasks/wp-install.js   | 109 +++++++++++++++++++------------------
 14 files changed, 218 insertions(+), 241 deletions(-)

diff --git a/gulp_tasks/browser-sync.js b/gulp_tasks/browser-sync.js
index cfa96af..910aa5f 100755
--- a/gulp_tasks/browser-sync.js
+++ b/gulp_tasks/browser-sync.js
@@ -1,11 +1,10 @@
-var gulp            = require('gulp'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const browserSync = require('browser-sync');
 
-// Browser Sync
 gulp.task('browser-sync', function() {
-  browserSync({
-    server: {
-       baseDir: gulp.paths.basePath
-    }
-  });
+	browserSync({
+		server: {
+			baseDir: gulp.paths.basePath
+		}
+	});
 });
diff --git a/gulp_tasks/clean.js b/gulp_tasks/clean.js
index 68f110b..24cb97c 100755
--- a/gulp_tasks/clean.js
+++ b/gulp_tasks/clean.js
@@ -1,7 +1,4 @@
-var gulp            = require('gulp'),
-    del             = require('del');
+const gulp = require('gulp');
+const del = require('del');
 
-// Clean
-gulp.task('clean', function() {
-  return del(gulp.paths.pagesDest);
-});
+gulp.task('clean', () => del(gulp.paths.pagesDest));
\ No newline at end of file
diff --git a/gulp_tasks/connect-sync.js b/gulp_tasks/connect-sync.js
index db38c7d..c850e70 100755
--- a/gulp_tasks/connect-sync.js
+++ b/gulp_tasks/connect-sync.js
@@ -1,16 +1,17 @@
-var gulp            = require('gulp'),
-    connect         = require('gulp-connect-php'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const connect = require('gulp-connect-php');
+const browserSync = require('browser-sync');
 
-// Connect Sync
 gulp.task('connect-sync', function() {
-  connect.server({
-    port: gulp.config.port,
-    base: gulp.paths.basePath,
-    livereload: true
-  }, function (){
-    browserSync({
-      proxy: gulp.config.localhost+':'+gulp.config.port
-    });
-  });
+	const serverConfig = {
+		base: gulp.paths.basePath,
+		port: gulp.config.port,
+		livereload: true
+	};
+
+	connect.server(serverConfig, function () {
+		browserSync({
+			proxy: gulp.config.localhost + ':' + gulp.config.port
+		});
+	});
 });
diff --git a/gulp_tasks/fonts.js b/gulp_tasks/fonts.js
index bb5d541..c6876c7 100755
--- a/gulp_tasks/fonts.js
+++ b/gulp_tasks/fonts.js
@@ -1,9 +1,8 @@
-var gulp            = require('gulp'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const browserSync = require('browser-sync');
 
-// Fonts
-gulp.task('fonts', function(){
-  gulp.src(gulp.paths.fonts)
-    .pipe(gulp.dest(gulp.paths.fontsDest))
-    .pipe(browserSync.reload({stream:true}));
+gulp.task('fonts', function() {
+	return gulp.src(gulp.paths.fonts)
+		.pipe(gulp.dest(gulp.paths.fontsDest))
+		.pipe(browserSync.reload({stream: true}));
 });
diff --git a/gulp_tasks/images.js b/gulp_tasks/images.js
index 639f468..423000c 100755
--- a/gulp_tasks/images.js
+++ b/gulp_tasks/images.js
@@ -1,17 +1,11 @@
-var gulp            = require('gulp'),
-    plumber         = require('gulp-plumber'),
-    cache           = require('gulp-cache'),
-    imagemin        = require('gulp-imagemin'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const plumber = require('gulp-plumber');
+const cache = require('gulp-cache');
+const imagemin = require('gulp-imagemin');
+const browserSync = require('browser-sync');
 
-// Images
 gulp.task('images', function() {
-  return gulp.src(gulp.paths.images)
-    .pipe(cache(imagemin({
-    	optimizationLevel: 3,
-    	progressive: true,
-    	interlaced: true
-    })))
-    .pipe(gulp.dest(gulp.paths.imagesDest))
-    .pipe(browserSync.reload({stream:true}));
+	return gulp.src(gulp.paths.images)
+		.pipe(gulp.dest(gulp.paths.imagesDest))
+		.pipe(browserSync.reload({stream: true}));
 });
diff --git a/gulp_tasks/init.js b/gulp_tasks/init.js
index e70e752..bcb4fae 100644
--- a/gulp_tasks/init.js
+++ b/gulp_tasks/init.js
@@ -1,15 +1,13 @@
-var gulp   		= require('gulp'),
-    helper 		= require('./helpers'),
-    args 			= process.argv;
+const gulp = require('gulp');
+const helper = require('./helpers');
+const args = process.argv;
 
-// Init
 gulp.task('init', function() {
 	var projectName = '';
 	var projectNameIndex = args.indexOf('--p');
 
 	if (projectNameIndex !== -1) {
 		projectName = args.slice(projectNameIndex + 1);
-
 		helper.rewriteProjectName(projectName.join(' '));
 	} else {
 		helper.log('Please, give us a project name using the `--p` param.', 'danger');
diff --git a/gulp_tasks/libs.js b/gulp_tasks/libs.js
index 0ff5da7..1cbfe0f 100755
--- a/gulp_tasks/libs.js
+++ b/gulp_tasks/libs.js
@@ -1,56 +1,53 @@
-var gulp            = require('gulp'),
-    plumber         = require('gulp-plumber'),
-    gulpFilter      = require('gulp-filter'),
-    mainBowerFiles  = require('gulp-main-bower-files'),
-    concat          = require('gulp-concat'),
-    rename          = require('gulp-rename'),
-    uglify          = require('gulp-uglify'),
-    cleanCss        = require('gulp-clean-css'),
-    flatten         = require('gulp-flatten'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const plumber = require('gulp-plumber');
+const gulpFilter = require('gulp-filter');
+const mainBowerFiles = require('gulp-main-bower-files');
+const concat = require('gulp-concat');
+const rename = require('gulp-rename');
+const uglify = require('gulp-uglify');
+const cleanCss = require('gulp-clean-css');
+const flatten = require('gulp-flatten');
+const browserSync = require('browser-sync');
 
-// Libs
 gulp.task('libs', function() {
+	const fontsExtensions = ['**/*.eot', '**/*.woff' , '**/*.woff2' , '**/*.svg', '**/*.ttf'];
 
-  var jsFilter = gulpFilter('**/*.js', {restore: true});
-  var cssFilter = gulpFilter('**/*.css', {restore: true});
-  var fontFilter = gulpFilter(['**/*.eot', '**/*.woff' , '**/*.woff2' , '**/*.svg', '**/*.ttf'], {restore: true});
+	const jsFilter = gulpFilter('**/*.js', {restore: true});
+	const cssFilter = gulpFilter('**/*.css', {restore: true});
+	const fontFilter = gulpFilter(fontsExtensions, {restore: true});
 
-  return gulp.src('./bower.json')
-    .pipe(mainBowerFiles({
-      "overrides": {
-       "font-awesome": {
-         "main": [
-           './css/font-awesome.min.css',
-           './fonts/*.*'
-         ]
-       }
-      }
-    }))
-    .pipe(plumber({
-      errorHandler: function (error) {
-        console.log(error.message);
-        this.emit('end');
-    }}))
+	return gulp.src('./bower.json')
+		.pipe(mainBowerFiles({
+			"overrides": {
+				"font-awesome": {
+					"main": ['./css/font-awesome.min.css', './fonts/*.*']
+				}
+			}
+		}))
+		.pipe(plumber({
+			errorHandler: error => {
+				console.log(error.message);
+				this.emit('end');
+			}
+		}))
 
-    // JS
-    .pipe(jsFilter)
-    .pipe(concat('libs.js'))
-    .pipe(rename({suffix: ".min"}))
-    .pipe(uglify())
-    .pipe(gulp.dest(gulp.paths.scriptsDest))
-    .pipe(jsFilter.restore)
+		// JS
+		.pipe(jsFilter)
+		.pipe(concat('libs.js'))
+		.pipe(rename({suffix: ".min"}))
+		.pipe(uglify())
+		.pipe(gulp.dest(gulp.paths.scriptsDest))
+		.pipe(jsFilter.restore)
 
-    //CSS
-    .pipe(cssFilter)
-    .pipe(cleanCss({compatibility: 'ie8'}))
-    .pipe(concat('libs.min.css'))
-    .pipe(gulp.dest(gulp.paths.stylesDest))
-    .pipe(cssFilter.restore)
-
-    // Fonts
-    .pipe(fontFilter)
-    .pipe(flatten())
-    .pipe(gulp.dest(gulp.paths.fontsDest));
+		//CSS
+		.pipe(cssFilter)
+		.pipe(cleanCss({compatibility: 'ie8'}))
+		.pipe(concat('libs.min.css'))
+		.pipe(gulp.dest(gulp.paths.stylesDest))
+		.pipe(cssFilter.restore)
 
+		// Fonts
+		.pipe(fontFilter)
+		.pipe(flatten())
+		.pipe(gulp.dest(gulp.paths.fontsDest));
 });
diff --git a/gulp_tasks/pages.js b/gulp_tasks/pages.js
index 03d38af..28e8834 100755
--- a/gulp_tasks/pages.js
+++ b/gulp_tasks/pages.js
@@ -1,18 +1,15 @@
-var gulp            = require('gulp'),
-    plumber         = require('gulp-plumber'),
-    browserSync     = require('browser-sync');
-    
-// Pages
-gulp.task('pages', function(){
+const gulp = require('gulp');
+const plumber = require('gulp-plumber');
+const browserSync = require('browser-sync');
 
-  return gulp.src(gulp.paths.pages)
-    .pipe(plumber({
-      errorHandler: function (error) {
-        console.log(error.message);
-        this.emit('end');
-    }}))
-    .pipe(gulp.dest(gulp.paths.pagesDest))
-    .pipe(browserSync.reload({stream:true}));
-
-  browserSync.reload();
+gulp.task('pages', function() {
+	return gulp.src(gulp.paths.pages)
+		.pipe(plumber({
+			errorHandler: error => {
+				console.log(error.message);
+				this.emit('end');
+			}
+		}))
+		.pipe(gulp.dest(gulp.paths.pagesDest))
+		.pipe(browserSync.reload({stream: true}));
 });
diff --git a/gulp_tasks/reload.js b/gulp_tasks/reload.js
index 7de5b09..6df51a3 100755
--- a/gulp_tasks/reload.js
+++ b/gulp_tasks/reload.js
@@ -1,7 +1,4 @@
-var gulp            = require('gulp'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const browserSync = require('browser-sync');
 
-// Reload
-gulp.task('reload', function () {
-  browserSync.reload();
-});
+gulp.task('reload', () => browserSync.reload());
diff --git a/gulp_tasks/scripts.js b/gulp_tasks/scripts.js
index d9796f8..5fa58e2 100755
--- a/gulp_tasks/scripts.js
+++ b/gulp_tasks/scripts.js
@@ -1,18 +1,17 @@
-var gulp            = require('gulp'),
-    plumber         = require('gulp-plumber'),
-    rename          = require('gulp-rename'),
-    uglify          = require('gulp-uglify'),
-    concat          = require('gulp-concat'),
-    sourcemaps      = require('gulp-sourcemaps'),
-    jshint  	  	  = require('gulp-jshint'),
-    babel 					= require('gulp-babel'),
-    browserSync  	  = require('browser-sync');
+const gulp = require('gulp');
+const plumber = require('gulp-plumber');
+const rename = require('gulp-rename');
+const uglify = require('gulp-uglify');
+const concat = require('gulp-concat');
+const sourcemaps = require('gulp-sourcemaps');
+const jshint = require('gulp-jshint');
+const babel = require('gulp-babel');
+const browserSync = require('browser-sync');
 
-// Scripts
 gulp.task('scripts', function() {
 	return gulp.src(gulp.paths.scripts)
 		.pipe(plumber({
-			errorHandler: function(error) {
+			errorHandler: error => {
 				console.log(error.message);
 				this.emit('end');
 			}
@@ -31,9 +30,7 @@ gulp.task('scripts', function() {
 		.pipe(uglify())
 		.pipe(rename({suffix: '.min'}))
 		.pipe(sourcemaps.write('.', {
-			mapFile: function(mapFilePath) {
-				return mapFilePath.replace('.js.map', '.map');
-			}
+			mapFile: mapFilePath => mapFilePath.replace('.js.map', '.map')
 		}))
 		.pipe(gulp.dest(gulp.paths.scriptsDest))
 		.pipe(browserSync.reload({stream: true}))
diff --git a/gulp_tasks/set-format.js b/gulp_tasks/set-format.js
index 6914643..d9a145a 100644
--- a/gulp_tasks/set-format.js
+++ b/gulp_tasks/set-format.js
@@ -1,10 +1,10 @@
-var gulp = require('gulp'),
-    helper = require('./helpers'),
-    fs = require('fs'),
-    args = process.argv;
+const gulp = require('gulp');
+const helper = require('./helpers');
+const fs = require('fs');
+const args = process.argv;
 
 gulp.task('set-format', function() {
-	var packageJsonFile = './package.json';
+	const packageJsonFile = './package.json';
 
 	fs.readFile(packageJsonFile, 'utf8', function (error, data) {
 		var newFormat = '';
@@ -24,7 +24,7 @@ gulp.task('set-format', function() {
 
 			if (newFormat.length === 0 || (validParams.indexOf(newFormat[0]) === -1)) {
 				helper.log('Please, give us a valid project format using the `--n` param.', 'danger');
-				process.exit(1)
+				process.exit(1);
 			}
 
 			updatedPackageJson.projectFormat = newFormat[0];
diff --git a/gulp_tasks/styles.js b/gulp_tasks/styles.js
index 71e8141..4e355fd 100755
--- a/gulp_tasks/styles.js
+++ b/gulp_tasks/styles.js
@@ -1,33 +1,31 @@
-var gulp            = require('gulp'),
-    plumber         = require('gulp-plumber'),
-    sass            = require('gulp-sass'),
-    rename          = require('gulp-rename'),
-    autoprefixer    = require('gulp-autoprefixer'),
-    sourcemaps      = require('gulp-sourcemaps'),
-    sassLint        = require('gulp-sass-lint'),
-    browserSync     = require('browser-sync');
+const gulp = require('gulp');
+const plumber = require('gulp-plumber');
+const sass = require('gulp-sass');
+const rename = require('gulp-rename');
+const autoprefixer = require('gulp-autoprefixer');
+const sourcemaps = require('gulp-sourcemaps');
+const sassLint = require('gulp-sass-lint');
+const browserSync = require('browser-sync');
 
 // Styles
 gulp.task('styles', function() {
-  return gulp.src(gulp.paths.styles)
-    .pipe(plumber({
-      errorHandler: function (error) {
-        console.log(error.message);
-        this.emit('end');
-      }
-    }))
-    .pipe(sassLint({configFile: 'sass-lint.yml'}))
-    .pipe(sassLint.format())
-    .pipe(sassLint.failOnError())
-    .pipe(sourcemaps.init())
-    .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
-    .pipe(rename({suffix: '.min'}))
-    .pipe(autoprefixer(['last 2 versions', 'ie 8', 'ie 9', '> 1%']))
-    .pipe(sourcemaps.write('.', {
-      mapFile: function(mapFilePath) {
-        return mapFilePath.replace('.css.map', '.map');
-      }
-    }))
-    .pipe(gulp.dest(gulp.paths.stylesDest))
-    .pipe(browserSync.reload({stream:true}))
+	return gulp.src(gulp.paths.styles)
+		.pipe(plumber({
+			errorHandler: error => {
+				console.log(error.message);
+				this.emit('end');
+			}
+		}))
+		.pipe(sassLint({configFile: 'sass-lint.yml'}))
+		.pipe(sassLint.format())
+		.pipe(sassLint.failOnError())
+		.pipe(sourcemaps.init())
+		.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
+		.pipe(rename({suffix: '.min'}))
+		.pipe(autoprefixer(['last 2 versions', 'ie 8', 'ie 9', '> 1%']))
+		.pipe(sourcemaps.write('.', {
+			mapFile: mapFilePath => mapFilePath.replace('.js.map', '.map')
+		}))
+		.pipe(gulp.dest(gulp.paths.stylesDest))
+		.pipe(browserSync.reload({stream: true}))
 });
diff --git a/gulp_tasks/wp-build.js b/gulp_tasks/wp-build.js
index 99d1ec8..ea5d1b0 100644
--- a/gulp_tasks/wp-build.js
+++ b/gulp_tasks/wp-build.js
@@ -1,27 +1,27 @@
-var gulp 		 		 = require('gulp'),
-		plumber  		 = require('gulp-plumber'),
-		readlineSync = require('readline-sync'),
-		helper 		   = require('./helpers'),
-		del      		 = require('del');
+const gulp = require('gulp');
+const plumber = require('gulp-plumber');
+const readlineSync = require('readline-sync');
+const helper = require('./helpers');
+const del = require('del');
 
 // WP Files
 gulp.task('wp-build', function() {
-	var dbName 			= readlineSync.question('[wp-config] DB name: '),
-	    dbUser 			= readlineSync.question('[wp-config] DB user: '),
-	    dbPass 			= readlineSync.question('[wp-config] DB password: '),
-	    dbHost 			= readlineSync.question('[wp-config] DB host: '),
-			packageJson = gulp.config.packageJson,
-			gulpPaths   = gulp.paths;
+	const dbName = readlineSync.question('[wp-config] DB name: ');
+	const dbUser = readlineSync.question('[wp-config] DB user: ');
+	const dbPass = readlineSync.question('[wp-config] DB password: ');
+	const dbHost = readlineSync.question('[wp-config] DB host: ');
+	const packageJson = gulp.config.packageJson;
+	const gulpPaths = gulp.paths;
 
-  helper.updateWpConfig({ name: dbName, user: dbUser, pass: dbPass, host: dbHost });
-  helper.updateWpStyle(packageJson.title);
-  helper.updateWpKeys();
+	helper.updateWpConfig({ name: dbName, user: dbUser, pass: dbPass, host: dbHost });
+	helper.updateWpStyle(packageJson.title);
+	helper.updateWpKeys();
 
 	del([gulpPaths.themesWp + '*', '!' + gulpPaths.themesWp + packageJson.name, '!' + gulpPaths.themesWp + 'index.php']);
 
 	gulp.src([gulpPaths.pluginsWp])
 		.pipe(plumber({
-			errorHandler: function(error) {
+			errorHandler: error => {
 				console.log(error.message);
 				this.emit('end');
 			}
@@ -30,7 +30,7 @@ gulp.task('wp-build', function() {
 
 	gulp.src('src/style.css')
 		.pipe(plumber({
-			errorHandler: function(error) {
+			errorHandler: error => {
 				console.log(error.message);
 				this.emit('end');
 			}
diff --git a/gulp_tasks/wp-install.js b/gulp_tasks/wp-install.js
index 481b2d3..f5d6b37 100644
--- a/gulp_tasks/wp-install.js
+++ b/gulp_tasks/wp-install.js
@@ -1,58 +1,61 @@
-var gulp            = require( 'gulp' ),
-    request         = require( 'request' ),
-    zlib            = require( 'zlib' ),
-    fs              = require( 'fs' ),
-    AdmZip          = require( 'adm-zip' ),
-    readlineSync    = require('readline-sync'),
-    helper 		      = require('./helpers'),
-    fileUrl         = 'https://wordpress.org/latest.zip',
-    output          = 'latest.zip';
+const gulp = require( 'gulp' );
+const request = require( 'request' );
+const zlib = require( 'zlib' );
+const fs = require( 'fs' );
+const AdmZip = require( 'adm-zip' );
+const readlineSync = require('readline-sync');
+const helper = require('./helpers');
+const fileUrl = 'https://wordpress.org/latest.zip';
+const output = 'latest.zip';
 
 // WP Install
 gulp.task('wp-install', function() {
-  var packageJson = gulp.config.packageJson,
-      initialized = helper.fileExists( './wordpress/index.php' );
-      projectName = process.argv.splice( process.argv.indexOf( '--p' ) )[1];
-
-  if( packageJson.name === 'grao-de-milho' ) {
-
-    helper.log('Set the project name using gulp init --p "[Project Name]".', 'danger');
-    helper.log('Stoping...', 'danger');
-    process.exit();
-
-  } else {
-
-    if(initialized) {
-      helper.log('Ops! Wordpress is already installed.', 'danger');
-      var answer = readlineSync.question('Do you want to reinstall wordpress? (Y or N) ');
-      if(['N', 'NO'].indexOf(answer.toUpperCase()) >= 0) {
-        helper.log('Stoping...', 'danger');
-        process.exit();
-      } else if(['Y', 'YES'].indexOf(answer.toUpperCase()) < 0) {
-        helper.log('Answer unexpected', 'danger');
-        helper.log('Stoping...', 'danger');
-        process.exit();
-      }
-    }
-
-    helper.log('Downloading wordpress...', 'success');
-
-    // Install WP
-    var req = request({
-        url: fileUrl,
-        encoding: null
-      }, function(err, resp, body) {
-        if(err) throw err;
-        fs.writeFile( output, body, function(err) {
-          helper.log('Unzipping wordpress...', 'success');
-          var zip = new AdmZip(output);
-          zip.extractAllTo( './' );
-          fs.unlink( output );
-          helper.log('Coping wp-config...', 'success');
-          fs.createReadStream('./wp-config.php').pipe(fs.createWriteStream('./wordpress/wp-config.php'));
-          gulp.start('wp-build');
-        });
-      });
-    }
+	const packageJson = gulp.config.packageJson;
+	const wpIsInitialized = helper.fileExists('./wordpress/index.php');
+	const projectName = process.argv.splice(process.argv.indexOf('--p'))[1];
+
+	if(packageJson.name === 'grao-de-milho') {
+		helper.log('Set the project name using gulp init --p "[Project Name]".', 'danger');
+		helper.log('Stoping...', 'danger');
+		process.exit();
+	}
+
+	if(wpIsInitialized) {
+		helper.log('Ops! Wordpress is already installed.', 'danger');
+		const answer = readlineSync.question('Do you want to reinstall wordpress? (Y or N) ');
+
+		if(['N', 'NO'].indexOf(answer.toUpperCase()) >= 0) {
+			helper.log('Stoping...', 'danger');
+			process.exit();
+		} else if(['Y', 'YES'].indexOf(answer.toUpperCase()) < 0) {
+			helper.log('Answer unexpected', 'danger');
+			helper.log('Stoping...', 'danger');
+			process.exit();
+		}
+	}
+
+	helper.log('Downloading wordpress...', 'success');
+
+	// Download
+	request({
+		url: fileUrl,
+		encoding: null
+	}, function(err, res, body) {
+		if(err) throw err;
+
+		fs.writeFile(output, body, function(err) {
+			if(err) throw err;
+
+			helper.log('Unzipping wordpress...', 'success');
+
+			const zip = new AdmZip(output);
+			zip.extractAllTo('./');
+			fs.unlink(output);
+
+			helper.log('Coping wp-config...', 'success');
+			fs.createReadStream('./wp-config.php').pipe(fs.createWriteStream('./wordpress/wp-config.php'));
+			gulp.start('wp-build');
+		});
+	});
 });
 

From 9104f292474a385f1aa7791fa3b6aba6d7daa7e4 Mon Sep 17 00:00:00 2001
From: Alison Monteiro <alisonmonteiro.10@gmail.com>
Date: Wed, 7 Dec 2016 22:27:36 -0300
Subject: [PATCH 3/4] fix(gulp): minor fixes

- small refactorings
- remove unused modules on images task
- using `require('fs')` instead `require(' fs ')`
- improve some var/const names
---
 gulp_tasks/browser-sync.js |  8 +++-----
 gulp_tasks/connect-sync.js |  7 ++-----
 gulp_tasks/images.js       |  3 ---
 gulp_tasks/styles.js       |  1 -
 gulp_tasks/wp-build.js     |  1 -
 gulp_tasks/wp-install.js   | 29 ++++++++++++++---------------
 6 files changed, 19 insertions(+), 30 deletions(-)

diff --git a/gulp_tasks/browser-sync.js b/gulp_tasks/browser-sync.js
index 910aa5f..a491123 100755
--- a/gulp_tasks/browser-sync.js
+++ b/gulp_tasks/browser-sync.js
@@ -2,9 +2,7 @@ const gulp = require('gulp');
 const browserSync = require('browser-sync');
 
 gulp.task('browser-sync', function() {
-	browserSync({
-		server: {
-			baseDir: gulp.paths.basePath
-		}
-	});
+	const baseDir = gulp.paths.basePath;
+
+	browserSync({server: { baseDir }});
 });
diff --git a/gulp_tasks/connect-sync.js b/gulp_tasks/connect-sync.js
index c850e70..847c04e 100755
--- a/gulp_tasks/connect-sync.js
+++ b/gulp_tasks/connect-sync.js
@@ -3,15 +3,12 @@ const connect = require('gulp-connect-php');
 const browserSync = require('browser-sync');
 
 gulp.task('connect-sync', function() {
+	const proxy = gulp.config.localhost + ':' + gulp.config.port;
 	const serverConfig = {
 		base: gulp.paths.basePath,
 		port: gulp.config.port,
 		livereload: true
 	};
 
-	connect.server(serverConfig, function () {
-		browserSync({
-			proxy: gulp.config.localhost + ':' + gulp.config.port
-		});
-	});
+	connect.server(serverConfig, () => browserSync({ proxy }));
 });
diff --git a/gulp_tasks/images.js b/gulp_tasks/images.js
index 423000c..ed45c49 100755
--- a/gulp_tasks/images.js
+++ b/gulp_tasks/images.js
@@ -1,7 +1,4 @@
 const gulp = require('gulp');
-const plumber = require('gulp-plumber');
-const cache = require('gulp-cache');
-const imagemin = require('gulp-imagemin');
 const browserSync = require('browser-sync');
 
 gulp.task('images', function() {
diff --git a/gulp_tasks/styles.js b/gulp_tasks/styles.js
index 4e355fd..843a97e 100755
--- a/gulp_tasks/styles.js
+++ b/gulp_tasks/styles.js
@@ -7,7 +7,6 @@ const sourcemaps = require('gulp-sourcemaps');
 const sassLint = require('gulp-sass-lint');
 const browserSync = require('browser-sync');
 
-// Styles
 gulp.task('styles', function() {
 	return gulp.src(gulp.paths.styles)
 		.pipe(plumber({
diff --git a/gulp_tasks/wp-build.js b/gulp_tasks/wp-build.js
index ea5d1b0..9f4baef 100644
--- a/gulp_tasks/wp-build.js
+++ b/gulp_tasks/wp-build.js
@@ -4,7 +4,6 @@ const readlineSync = require('readline-sync');
 const helper = require('./helpers');
 const del = require('del');
 
-// WP Files
 gulp.task('wp-build', function() {
 	const dbName = readlineSync.question('[wp-config] DB name: ');
 	const dbUser = readlineSync.question('[wp-config] DB user: ');
diff --git a/gulp_tasks/wp-install.js b/gulp_tasks/wp-install.js
index f5d6b37..1ebab3c 100644
--- a/gulp_tasks/wp-install.js
+++ b/gulp_tasks/wp-install.js
@@ -1,15 +1,14 @@
-const gulp = require( 'gulp' );
-const request = require( 'request' );
-const zlib = require( 'zlib' );
-const fs = require( 'fs' );
-const AdmZip = require( 'adm-zip' );
+const gulp = require('gulp');
+const request = require('request');
+const zlib = require('zlib');
+const fs = require('fs');
+const AdmZip = require('adm-zip');
 const readlineSync = require('readline-sync');
 const helper = require('./helpers');
-const fileUrl = 'https://wordpress.org/latest.zip';
-const output = 'latest.zip';
 
-// WP Install
 gulp.task('wp-install', function() {
+	const wpLatestZip = 'https://wordpress.org/latest.zip';
+	const outputZip = 'latest.zip';
 	const packageJson = gulp.config.packageJson;
 	const wpIsInitialized = helper.fileExists('./wordpress/index.php');
 	const projectName = process.argv.splice(process.argv.indexOf('--p'))[1];
@@ -38,19 +37,19 @@ gulp.task('wp-install', function() {
 
 	// Download
 	request({
-		url: fileUrl,
+		url: wpLatestZip,
 		encoding: null
-	}, function(err, res, body) {
-		if(err) throw err;
+	}, function(reqError, response, body) {
+		if(reqError) throw reqError;
 
-		fs.writeFile(output, body, function(err) {
-			if(err) throw err;
+		fs.writeFile(outputZip, body, error => {
+			if(error) throw error;
 
 			helper.log('Unzipping wordpress...', 'success');
 
-			const zip = new AdmZip(output);
+			const zip = new AdmZip(outputZip);
 			zip.extractAllTo('./');
-			fs.unlink(output);
+			fs.unlink(outputZip);
 
 			helper.log('Coping wp-config...', 'success');
 			fs.createReadStream('./wp-config.php').pipe(fs.createWriteStream('./wordpress/wp-config.php'));

From 98a8349dc7a095354b9c521cd897b901020592c1 Mon Sep 17 00:00:00 2001
From: Alison Monteiro <alisonmonteiro.10@gmail.com>
Date: Thu, 8 Dec 2016 22:31:45 -0300
Subject: [PATCH 4/4] fix(gulp): making some refactoring on helpers file

it's just a minor refactoring section.
we removed some unused methods from the exported object
also we made some refactoring on almost all methods.
---
 gulp_tasks/helpers.js | 235 +++++++++++++++++++++---------------------
 1 file changed, 115 insertions(+), 120 deletions(-)

diff --git a/gulp_tasks/helpers.js b/gulp_tasks/helpers.js
index b7d254e..9170395 100644
--- a/gulp_tasks/helpers.js
+++ b/gulp_tasks/helpers.js
@@ -1,158 +1,153 @@
-var fs      = require('fs'),
-    slugify = require('slugify'),
-    request = require('request');
-
-// Helpers
-function helpers() {
-	function fileExists(filePath) {
-		try {
-			return fs.statSync(filePath).isFile();
-		} catch (err) {
-			return false;
-		}
+// TODO: refactor this file ASAP.
+const fs = require('fs');
+const slugify = require('slugify');
+const request = require('request');
+
+const wpStyleFile = './src/style.css';
+const wpConfigFile = './wp-config.php';
+const bowerJsonFile = './bower.json';
+const packageJsonFile = './package.json';
+
+function rewriteProjectName(name) {
+	if (name === '') {
+		log('Please, give us a project name using the `--p` param.', 'danger');
+		process.exit();
 	}
 
-	function log(message, type) {
-		var date = new Date().toTimeString().split(' ')[0];
-		var dateFormated = '[\x1b[90m' + date + '\x1b[0m] >> ';
-		var color = '';
-		var log = '';
-
-		switch (type) {
-			case 'danger':
-				color = '\x1b[31m';
-				break;
-			case 'success':
-				color = '\x1b[32m';
-				break;
-			default:
-				color = '\x1b[34m';
-		}
-
-		log += dateFormated + color + message;
-		log += '\x1b[0m';
-
-		console.log(log);
-	}
-
-	function rewriteProjectName(name) {
-		if (name === '') {
-			this.log('Please, give us a project name using the `--p` param.', 'danger');
-			process.exit();
-		}
-
-		this.updatePackageJson(name);
-		this.updateBowerJson(name);
-	}
+	updatePackageJson(name);
+	updateBowerJson(name);
+}
 
-	function updatePackageJson(name) {
-		var packageJsonFile = './package.json';
-		var slug = slugify(name).toLowerCase();
-		var that = this;
+function updatePackageJson(name) {
+	const slug = getSlug(name);
 
-		that.log('Configuring package.json', 'success');
+	log('Configuring package.json...', 'success');
 
-		fs.readFile(packageJsonFile, 'utf8', function (err, data) {
-			var updatedPackageJson;
+	fs.readFile(packageJsonFile, 'utf8', function (error, data) {
+		checkErrorsAndExit(error);
 
-			checkErrorsWhenIsReading(err);
+		const updatedPackageJson = JSON.parse(data);
+		updatedPackageJson.version = '0.0.0';
+		updatedPackageJson.name = slug;
+		updatedPackageJson.title = name;
+		updatedPackageJson.description = name;
 
-			updatedPackageJson = JSON.parse(data);
+		writeOn(packageJsonFile, JSON.stringify(updatedPackageJson, null, '  '));
+	});
+}
 
-			updatedPackageJson.version = '0.0.0';
-			updatedPackageJson.name = slug;
-			updatedPackageJson.title = name;
-			updatedPackageJson.description = name;
+function updateBowerJson(name) {
+	const slug = getSlug(name);
 
-			writeOn(packageJsonFile, JSON.stringify(updatedPackageJson, null, '  '));
-		});
-	}
+	log('Configuring bower.json', 'success');
 
-	function updateBowerJson(name) {
-		var bowerJsonFile = './bower.json';
-		var slug = slugify(name).toLowerCase();
+	fs.readFile(bowerJsonFile, 'utf8', function (error, data) {
+		checkErrorsAndExit(error);
 
-		this.log('Configuring bower.json', 'success');
+		writeOn(bowerJsonFile, data.replace(/grao-de-milho/g, slug));
+	});
+}
 
-		fs.readFile(bowerJsonFile, 'utf8', function (err, data) {
-			checkErrorsWhenIsReading(err);
+function updateWpStyle(name) {
+	if (fileExists(wpStyleFile)) {
+		fs.readFile(wpStyleFile, 'utf8', function (error, data) {
+			checkErrorsAndExit(error);
 
-			writeOn(bowerJsonFile, data.replace(/grao-de-milho/g, slug));
+			writeOn(wpStyleFile, data.replace(/Grão de Milho/g, name));
 		});
 	}
+}
 
-	function updateWpStyle(name) {
-		var wpStyleFile = './src/style.css';
-
-		if (fileExists(wpStyleFile)) {
-			fs.readFile(wpStyleFile, 'utf8', function (err, data) {
-				checkErrorsWhenIsReading(err);
-
-				writeOn(wpStyleFile, data.replace(/Grão de Milho/g, name));
-			});
-		}
-	}
+function updateWpConfig(dbOptions) {
+	fs.readFile(wpConfigFile, 'utf8', function (error, data) {
+		checkErrorsAndExit(error);
 
-	function updateWpConfig(dbOptions) {
-		var wpConfigDefaultUrl = './wp-config.php';
-		var wpConfigUrl = './wordpress/wp-config.php';
+		const newWpConfigFile = './wordpress/wp-config.php';
 
-		fs.readFile(wpConfigDefaultUrl, 'utf8', function (err, data) {
-			checkErrorsWhenIsReading(err);
+		data = data.replace(/database_name_here/g, dbOptions.name);
+		data = data.replace(/username_here/g, dbOptions.user);
+		data = data.replace(/password_here/g, dbOptions.pass);
+		data = data.replace(/host_here/g, dbOptions.host);
 
-			data = data.replace(/database_name_here/g, dbOptions.name);
-			data = data.replace(/username_here/g, dbOptions.user);
-			data = data.replace(/password_here/g, dbOptions.pass);
-			data = data.replace(/host_here/g, dbOptions.host);
+		writeOn(newWpConfigFile, data);
+	});
+}
 
-			writeOn(wpConfigUrl, data);
-		});
-	}
+function updateWpKeys() {
+	const secretKeyUrl = 'https://api.wordpress.org/secret-key/1.1/salt/';
 
-	function updateWpKeys() {
-		var wpConfigUrl = './wordpress/wp-config.php',
-				url         = 'https://api.wordpress.org/secret-key/1.1/salt/';
+	log('Generating authentication keys', 'success');
 
-		this.log('Generating authentication keys', 'success');
+	request
+		.get(secretKeyUrl, function (error, response, body) {
+			checkErrorsAndExit(error);
 
-		request.get(url, function (err, response, body) {
-			checkErrorsWhenIsReading(err);
+			const wpConfigUrl = './wordpress/wp-config.php';
 
 			fs.readFile(wpConfigUrl, 'utf8', function (err, data) {
-				checkErrorsWhenIsReading(err);
+				checkErrorsAndExit(err);
 
 				data = data.replace(/AUTHENTICATION_KEY/gi, body);
 
 				writeOn(wpConfigUrl, data);
 			});
 		});
-	}
+}
 
-	function writeOn(file, content) {
-		fs.writeFile(file, content, 'utf8', function (err) {
-			checkErrorsWhenIsReading(err);
-		});
+function getSlug(name) {
+	return slugify(name).toLowerCase();
+}
+
+function checkErrorsAndExit(error) {
+	if (error) {
+		log(error, 'danger');
+		process.exit(1)
 	}
+}
+
+function writeOn(file, content) {
+	fs.writeFile(file, content, 'utf8', err => checkErrorsAndExit(err));
+}
 
-	function checkErrorsWhenIsReading(error) {
-		if (error) {
-			this.log(error, 'danger');
-			process.exit(1)
-		}
+function fileExists(filePath) {
+	try {
+		return fs.statSync(filePath).isFile();
+	} catch (err) {
+		// TODO: handle this
+		return false;
 	}
+}
+
+function log(message, type) {
+	const date = new Date().toTimeString();
+	const dateFormated = dateTermnialOutputFormat(date.split(' ')[0]);
+	const color = colorByAlertType(type);
+	const log = dateFormated + color + message + '\x1b[0m';
+
+	console.log(log);
+}
+
+function dateTermnialOutputFormat(date) {
+	return '[\x1b[90m' + date + '\x1b[0m] >> ';
+}
 
-	return {
-		slugify: slugify,
-		fileExists: fileExists,
-		log: log,
-		writeOn: writeOn,
-		rewriteProjectName: rewriteProjectName,
-		updateWpConfig: updateWpConfig,
-		updatePackageJson: updatePackageJson,
-		updateBowerJson: updateBowerJson,
-		updateWpStyle: updateWpStyle,
-		updateWpKeys: updateWpKeys
-	};
+function colorByAlertType(type) {
+	switch (type) {
+		case 'danger':
+			return '\x1b[31m';
+		case 'success':
+			return '\x1b[32m';
+		default:
+			return '\x1b[34m';
+	}
 }
 
-module.exports = helpers();
+module.exports = {
+	log,
+	writeOn,
+	fileExists,
+	updateWpConfig,
+	rewriteProjectName,
+	updateWpStyle,
+	updateWpKeys
+};