microscope-console
v0.9.1
Published
Console application librairy - play well with gulp and npm workflow.
Readme
microscope-console
Console application librairie - play well with gulp and npm workflow.

Requirements
- node
- npm
- gulp
Node.js installation
Install on OSX
Using homebrew:
brew install nodeInstall on Linux (Ubuntu/Mint)
sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejsInstall on Windows
Installation
install gulp (sudo on linux/OSX) :
npm install gulp -ginstall dependencies (sudo on linux/OSX) :
npm installDevelopment commands
test (run gulp test):
npm testbuild (not use yet):
gulp build- compile src with babel to lib folder
test:
grunt test- validate source code (jsHint).
docs:
grunt docs- generate annoted code documentation (docco).
- generate annoted code samples documentation (docco).
How to use ?
Create console application wich rich form:
old school way (ES5):
var Form = require('microscope-console').Form;
var ejs = require("gulp-ejs");
/**
* Project form
* Es5 syntax
*/
var ProjectForm = Form.extend({
model: [{
type: 'input',
name: 'projectName',
message: 'What is your project name ?',
validate: this.validate
}],
// input validation here
validate: function (input) {
var done = this.async();
done(true);
},
// manage user answer here
response: function (answer) {
this.src([__dirname + '/../templates/index.ejs'])
.pipe(ejs({projectName: answer.projectName}))
.pipe(this.dest(__dirname + '/../' + answer.projectName + '/'));
var output = '\nYour project '+ answer.projectName +' was generated !';
console.log(output.green);
}
});
module.exports = ProjectForm;new school way (ES6 with babel):
var Form = require('microscope-console').Form;
var ejs = require("gulp-ejs");
/**
* Project form with es6 syntax
* native extend es5 form
*/
class ProjectForm extends Form {
get model(){
return [{
type: 'input',
name: 'projectName',
message: 'What is your project name ?',
validate: this.validate
}];
}
// input validation here
validate(input){
var done = this.async();
done(true);
}
// manage user answer here
response(answer){
this.src([__dirname + '/../templates/index.ejs'])
.pipe(ejs({projectName: answer.projectName}))
.pipe(this.dest(__dirname + '/../' + answer.projectName + '/'));
var output = '\nYour project '+ answer.projectName +' was generated !';
console.log(output.green);
}
}
module.exports = ProjectForm;Instatiate it and compose tasks console applications using gulp
var ProjectForm = require('./forms/ProjectForm');
var c = new ProjectForm();Roadmap
- improve testing
