182 lines
5.3 KiB
JavaScript
182 lines
5.3 KiB
JavaScript
|
|
/*global module:false*/
|
||
|
|
module.exports = function(grunt) {
|
||
|
|
|
||
|
|
// Project configuration.
|
||
|
|
grunt.initConfig({
|
||
|
|
pkg: grunt.file.readJSON('package.json'),
|
||
|
|
|
||
|
|
jshint: {
|
||
|
|
options: {
|
||
|
|
jshintrc:'.jshintrc'
|
||
|
|
},
|
||
|
|
all: ['Gruntfile.js', 'src/*.js', 'test/*.js']
|
||
|
|
},
|
||
|
|
|
||
|
|
qunit: {
|
||
|
|
options: {
|
||
|
|
'--web-security':'no',
|
||
|
|
timeout: 40000,
|
||
|
|
coverage: {
|
||
|
|
src: ['src/*.js'],
|
||
|
|
instrumentedFiles: 'temp',
|
||
|
|
htmlReport: 'report/coverage'
|
||
|
|
}
|
||
|
|
},
|
||
|
|
all: ['test/index.html']
|
||
|
|
},
|
||
|
|
|
||
|
|
complexity: {
|
||
|
|
generic: {
|
||
|
|
src: ['src/*.js'],
|
||
|
|
options: {
|
||
|
|
errorsOnly: false,
|
||
|
|
cyclomatic: 8,
|
||
|
|
halstead: 31,
|
||
|
|
maintainability: 100
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
plato: {
|
||
|
|
bc: {
|
||
|
|
src: ['src/backbone.mutators.js'],
|
||
|
|
dest: 'docs/complexity',
|
||
|
|
options: {
|
||
|
|
jshint : grunt.file.readJSON('.jshintrc')
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
'saucelabs-qunit': {
|
||
|
|
all: {
|
||
|
|
options: {
|
||
|
|
username: 'asciidisco',
|
||
|
|
urls: ['http://rawgithub.com/asciidisco/Backbone.Mutators/master/test/index_sauce.html'],
|
||
|
|
tunnelTimeout: 100000,
|
||
|
|
testTimeout: 100000,
|
||
|
|
testname: 'Backbone.Mutators',
|
||
|
|
tags: ['backbone', 'plugin', 'mutators', 'unittest'],
|
||
|
|
build: process.env.TRAVIS_JOB_ID,
|
||
|
|
browsers: [ {
|
||
|
|
browserName: 'internet explorer',
|
||
|
|
platform: 'XP',
|
||
|
|
version: '6'
|
||
|
|
}, {
|
||
|
|
browserName: 'internet explorer',
|
||
|
|
platform: 'XP',
|
||
|
|
version: '7'
|
||
|
|
}, {
|
||
|
|
browserName: 'internet explorer',
|
||
|
|
platform: 'Windows 7',
|
||
|
|
version: '8'
|
||
|
|
}, {
|
||
|
|
browserName: 'internet explorer',
|
||
|
|
platform: 'Windows 7',
|
||
|
|
version: '9'
|
||
|
|
}, {
|
||
|
|
browserName: 'firefox',
|
||
|
|
platform: 'Windows 7',
|
||
|
|
version: '21'
|
||
|
|
}, {
|
||
|
|
browserName: 'chrome',
|
||
|
|
platform: 'Windows 7'
|
||
|
|
}, {
|
||
|
|
browserName: 'opera',
|
||
|
|
platform: 'Windows 2008',
|
||
|
|
version: '12'
|
||
|
|
}]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
nodeunit: {
|
||
|
|
all: ['test/*node_test.js']
|
||
|
|
},
|
||
|
|
|
||
|
|
concat: {
|
||
|
|
options: {
|
||
|
|
stripBanners: true,
|
||
|
|
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' +
|
||
|
|
'------------------------------\n' +
|
||
|
|
'Build @ <%= grunt.template.today("yyyy-mm-dd") %>\n' +
|
||
|
|
'Documentation and Full License Available at:\n' +
|
||
|
|
'<%= pkg.homepage %>\n' +
|
||
|
|
'<%= pkg.repository.url %>\n' +
|
||
|
|
'Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n\n' +
|
||
|
|
'Permission is hereby granted, free of charge, to any person obtaining a\n' +
|
||
|
|
'copy of this software and associated documentation files (the "Software"),\n' +
|
||
|
|
'to deal in the Software without restriction, including without limitation\n' +
|
||
|
|
'the rights to use, copy, modify, merge, publish, distribute, sublicense,\n' +
|
||
|
|
'and/or sell copies of the Software, and to permit persons to whom the\n\n' +
|
||
|
|
'Software is furnished to do so, subject to the following conditions:\n' +
|
||
|
|
'The above copyright notice and this permission notice shall be included in\n' +
|
||
|
|
'all copies or substantial portions of the Software.\n\n' +
|
||
|
|
'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n' +
|
||
|
|
'EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n' +
|
||
|
|
'FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n' +
|
||
|
|
'IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n' +
|
||
|
|
'DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n' +
|
||
|
|
'ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n' +
|
||
|
|
'IN THE SOFTWARE.*/\n'
|
||
|
|
},
|
||
|
|
dist: {
|
||
|
|
src: ['src/<%= pkg.name.toLowerCase() %>.js'],
|
||
|
|
dest: '<%= pkg.name.toLowerCase() %>.js'
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
uglify: {
|
||
|
|
options: {
|
||
|
|
banner: '<%= concat.options.banner %>'
|
||
|
|
},
|
||
|
|
dist: {
|
||
|
|
files: {
|
||
|
|
'<%= pkg.name.toLowerCase() %>.min.js': ['<%= pkg.name.toLowerCase() %>.js']
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
docco: {
|
||
|
|
debug: {
|
||
|
|
src: ['src/*.js'],
|
||
|
|
options: {
|
||
|
|
output: 'docs/literal'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
yuidoc: {
|
||
|
|
compile: {
|
||
|
|
name: '<%= pkg.name %>',
|
||
|
|
description: '<%= pkg.description %>',
|
||
|
|
version: '<%= pkg.version %>',
|
||
|
|
options: {
|
||
|
|
linkNatives: true,
|
||
|
|
selleck: true,
|
||
|
|
paths: 'src/',
|
||
|
|
outdir: 'docs/api'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// Load 3rd party tasks
|
||
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
||
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||
|
|
grunt.loadNpmTasks('grunt-qunit-istanbul');
|
||
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||
|
|
grunt.loadNpmTasks('grunt-contrib-nodeunit');
|
||
|
|
grunt.loadNpmTasks('grunt-contrib-yuidoc');
|
||
|
|
grunt.loadNpmTasks('grunt-saucelabs');
|
||
|
|
grunt.loadNpmTasks('grunt-complexity');
|
||
|
|
grunt.loadNpmTasks('grunt-docco');
|
||
|
|
grunt.loadNpmTasks('grunt-plato');
|
||
|
|
|
||
|
|
// Default task.
|
||
|
|
grunt.registerTask('default', ['jshint', 'complexity', 'qunit', 'nodeunit', 'concat', 'uglify']);
|
||
|
|
grunt.registerTask('travis', ['jshint', 'complexity', 'qunit']);
|
||
|
|
|
||
|
|
|
||
|
|
};
|