Skip to content
Open

Gulp #46

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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
**/*.sw?
**/node_modules
8 changes: 8 additions & 0 deletions matthew_ringel/.jshintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"node": true,
"globals": {
"exports": true,
"module": true

}
}
29 changes: 29 additions & 0 deletions matthew_ringel/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#Adding a Gulpfile/package.json#
##Matthew Ringel##
##28 October 2015##

Added package.json and gulp file.

The gulpfile contains two tasks:

gulp jshint will run jshint on all code in the /lib and /test folders.

gulp mocha will run the tests in the greet_test.js file. I chose not to include the the other test file as that only applied to last assignment's bonus point.

For this weeks bonus point, I put the jshint options into a .jshintrc file at the root level that can me transfered between projects.




###27 October 2015###
greet.js is a module that returns an object with a method called greet which takes one argument, expected as a string. Calling the method will output 'hello NAME' where NAME is the string passed as an argument.

greetcl.js is the command line utility. Usage is

```node greetcl.js [name]```

where [name] is a string.


The test for the 2nd part bonus isn't working. The argument parser is set up to throw a TypeError if the given argument is not a string. I tried to set up a test to test for the error using expect(fn).to.throw(TypeError)
but it didn't work.
9 changes: 9 additions & 0 deletions matthew_ringel/greetcl.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
'use strict';

var Greet = require('./lib/greet');
var greet = new Greet();

var arg_parse = require('./lib/arg_parse.js');
var nameString = arg_parse.parse(process.argv[2]);

console.log(greet.greet(nameString));
20 changes: 20 additions & 0 deletions matthew_ringel/gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var mocha = require('gulp-mocha');
var appFiles = ['index.js', 'lib/**/*.js', 'bin/**/*.js'];
var testFiles = ['./test/**/*.js'];

gulp.task('jshint', function() {
return gulp.src('./lib/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
return gulp.src('./test/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));

});

gulp.task('mocha', function() {
return gulp.src('./test/greet_test.js', {read: false})
.pipe(mocha({reporter: 'spec'}));
});
14 changes: 14 additions & 0 deletions matthew_ringel/lib/arg_parse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use strict';

exports = module.exports = {};

exports.parse = function(arg) {
if (typeof arg != 'string') {
// throw "argument is not a string!";
throw new TypeError('string!');
// return arg.toString();
}
else {
return arg;
}
};
7 changes: 7 additions & 0 deletions matthew_ringel/lib/greet.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

var Greeting = module.exports = exports = function() {
this.greet = function(name) {
return 'hello ' + name;
};
};
29 changes: 29 additions & 0 deletions matthew_ringel/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "matthew_ringel_wk1",
"version": "0.1.0",
"description": "greeting module for week one of sea-d45-javascript",
"main": "index.js",
"directories": {
"test": "test"
},
"dependencies": {
"chai": "^3.4.0"
},
"devDependencies": {
"gulp-jshint": "^1.11.2",
"gulp-mocha": "^2.1.3"
},
"scripts": {
"test": "./node_modules/mocha/bin/mocha test"
},
"repository": {
"type": "git",
"url": "git+https://github.com/mringel/simple-test-and-modular-patterns.git"
},
"author": "Matthew Ringel",
"license": "MIT",
"bugs": {
"url": "https://github.com/mringel/simple-test-and-modular-patterns/issues"
},
"homepage": "https://github.com/mringel/simple-test-and-modular-patterns#readme"
}
12 changes: 12 additions & 0 deletions matthew_ringel/test/greet_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
'use strict';

var expect = require('chai').expect;

var greetConstructor = require(__dirname + '/../lib/greet');
var greetModule = new greetConstructor();

describe('the greet function', function testGreet() {
it('should return hello NAME', function greetExpect() {
expect(greetModule.greet('NAME')).to.eql('hello NAME');
});
});
17 changes: 17 additions & 0 deletions matthew_ringel/test/parse_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
'use strict';

var chai = require('chai');
var expect = chai.expect;
var assert = chai.assert;

var arg_parse = require('../lib/arg_parse.js');

describe('the parse function', function testParse() {
it('should return a string', function stringExpect() {
expect(arg_parse.parse('NAME')).to.eql('NAME');
});
it('should throw an error', function errorExpect() {
// expect(arg_parse.parse(0)).to.throw(TypeError);
assert.throws(arg_parse.parse(0), TypeError, 'string!')
});
});