2013-05-21 15:42:17 +04:00
|
|
|
module.exports = function(grunt) {
|
2013-06-12 18:33:29 +04:00
|
|
|
"use strict";
|
2013-05-21 15:42:17 +04:00
|
|
|
// Project configuration.
|
|
|
|
grunt.initConfig({
|
|
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
concat: {
|
|
|
|
dist: {
|
|
|
|
src: [
|
2013-06-12 18:33:29 +04:00
|
|
|
"src/begin.js",
|
|
|
|
"src/objects/axis/begin.js",
|
|
|
|
"src/objects/axis/methods/*.js",
|
|
|
|
"src/objects/axis/end.js",
|
|
|
|
"src/objects/chart/begin.js",
|
|
|
|
"src/objects/chart/methods/*.js",
|
|
|
|
"src/objects/chart/end.js",
|
|
|
|
"src/objects/color/begin.js",
|
|
|
|
"src/objects/color/end.js",
|
|
|
|
"src/objects/eventArgs/begin.js",
|
|
|
|
"src/objects/eventArgs/end.js",
|
|
|
|
"src/objects/legend/begin.js",
|
|
|
|
"src/objects/legend/methods/*.js",
|
|
|
|
"src/objects/legend/end.js",
|
|
|
|
"src/objects/series/begin.js",
|
|
|
|
"src/objects/series/methods/*.js",
|
|
|
|
"src/objects/series/end.js",
|
|
|
|
"src/objects/storyboard/begin.js",
|
|
|
|
"src/objects/storyboard/methods/*.js",
|
|
|
|
"src/objects/storyboard/end.js",
|
|
|
|
"src/objects/aggregateMethod/*.js",
|
|
|
|
"src/objects/plot/*.js",
|
|
|
|
"src/methods/*.js",
|
|
|
|
"src/end.js"
|
|
|
|
],
|
2013-09-11 22:06:40 +04:00
|
|
|
dest: 'dist/<%= pkg.name %>.v<%= pkg.version %>.js'
|
2014-01-19 16:53:29 +04:00
|
|
|
},
|
|
|
|
test: {
|
|
|
|
src: '<%= concat.dist.src %>',
|
|
|
|
dest: 'tmp/<%= pkg.name %>.js'
|
2013-05-21 15:42:17 +04:00
|
|
|
}
|
|
|
|
},
|
|
|
|
uglify: {
|
|
|
|
dist: {
|
|
|
|
files: {
|
2013-09-11 22:06:40 +04:00
|
|
|
'dist/<%= pkg.name %>.v<%= pkg.version %>.min.js': ['<%= concat.dist.dest %>']
|
2013-05-21 15:42:17 +04:00
|
|
|
}
|
|
|
|
}
|
2013-06-08 02:31:05 +04:00
|
|
|
},
|
2013-06-12 18:33:29 +04:00
|
|
|
connect: {
|
|
|
|
server: {
|
|
|
|
options: {
|
|
|
|
port: 3001,
|
|
|
|
base: '.'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
qunit: {
|
|
|
|
all: {
|
|
|
|
options: {
|
|
|
|
urls: [
|
2013-06-12 22:03:07 +04:00
|
|
|
'http://localhost:3001/test/methods/_getOrderedList.html',
|
2013-06-13 13:01:20 +04:00
|
|
|
'http://localhost:3001/test/methods/_rollUp.html',
|
|
|
|
'http://localhost:3001/test/methods/newSvg.html'
|
2013-06-12 18:33:29 +04:00
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
jslint: {
|
|
|
|
files: [
|
|
|
|
'Gruntfile.js',
|
2013-09-11 22:06:40 +04:00
|
|
|
'dist/<%= pkg.name %>.v<%= pkg.version %>.js'
|
2013-06-12 18:33:29 +04:00
|
|
|
],
|
|
|
|
directives: {
|
|
|
|
browser: true,
|
|
|
|
nomen: true,
|
|
|
|
predef: [
|
|
|
|
'd3',
|
2013-09-11 22:06:40 +04:00
|
|
|
'module',
|
|
|
|
'console'
|
2013-06-12 18:33:29 +04:00
|
|
|
]
|
|
|
|
}
|
2013-09-11 22:06:40 +04:00
|
|
|
},
|
|
|
|
prop: {
|
|
|
|
dist: {
|
|
|
|
src: [
|
|
|
|
'examples/templates/*.html'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
options: {
|
|
|
|
dest: 'examples/',
|
|
|
|
tag: '{version}',
|
2013-09-12 13:45:02 +04:00
|
|
|
version: 'v<%= pkg.version %>',
|
2013-09-12 13:53:11 +04:00
|
|
|
header: "<!----------------------------------------------------------------->\n" +
|
|
|
|
"<!-- AUTOMATICALLY GENERATED CODE - PLEASE EDIT TEMPLATE INSTEAD -->\n" +
|
|
|
|
"<!----------------------------------------------------------------->\n"
|
2013-09-11 22:06:40 +04:00
|
|
|
}
|
2014-01-19 16:53:29 +04:00
|
|
|
},
|
|
|
|
karma: {
|
|
|
|
options: {
|
|
|
|
basepath: '',
|
|
|
|
frameworks: ['jasmine'],
|
|
|
|
files: [
|
2014-01-19 17:39:01 +04:00
|
|
|
'lib/d3.v3.min.js',
|
2014-01-19 16:53:29 +04:00
|
|
|
'tmp/*.js',
|
|
|
|
'test/**/*.spec.js',
|
|
|
|
'test/*.spec.js'
|
|
|
|
],
|
|
|
|
reporters: ['progress'],
|
|
|
|
port: 9876,
|
|
|
|
colors: true,
|
|
|
|
browsers: ['PhantomJS']
|
|
|
|
},
|
|
|
|
unit: {
|
|
|
|
singleRun: true
|
|
|
|
},
|
|
|
|
continuous: {
|
|
|
|
background: true,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
src: {
|
|
|
|
files: [
|
|
|
|
'<%= concat.test.src %>',
|
|
|
|
],
|
|
|
|
tasks: ['concat:test', 'karma:continuous:run']
|
|
|
|
},
|
|
|
|
test: {
|
|
|
|
files: [
|
|
|
|
'test/**/*.spec.js',
|
|
|
|
'test/*.spec.js'
|
|
|
|
],
|
|
|
|
tasks: ['karma:continuous:run']
|
|
|
|
}
|
2013-06-12 18:33:29 +04:00
|
|
|
}
|
2013-05-21 15:42:17 +04:00
|
|
|
});
|
|
|
|
|
|
|
|
// Load the plugin that provides the "uglify" task.
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
2013-06-08 02:31:05 +04:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-connect');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-qunit');
|
2013-06-12 18:33:29 +04:00
|
|
|
grunt.loadNpmTasks('grunt-jslint');
|
2014-01-19 16:53:29 +04:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
|
|
grunt.loadNpmTasks('grunt-karma');
|
2013-05-21 15:42:17 +04:00
|
|
|
|
2013-09-11 22:06:40 +04:00
|
|
|
// Propogate version into relevant files
|
|
|
|
grunt.registerMultiTask('prop', 'Propagate Versions.', function() {
|
|
|
|
var options = this.options(),
|
|
|
|
outPath = options.dest,
|
|
|
|
tag = options.tag,
|
2013-09-12 13:45:02 +04:00
|
|
|
version = options.version,
|
|
|
|
header = options.header;
|
|
|
|
grunt.log.writeln("");
|
|
|
|
grunt.log.writeln("Replacing " + tag + " with " + version);
|
|
|
|
grunt.log.writeln("------------------------------------------------------");
|
2013-09-11 22:06:40 +04:00
|
|
|
this.files.forEach(function(f) {
|
|
|
|
f.src.filter(function(filepath) {
|
|
|
|
var result = true;
|
|
|
|
if (!grunt.file.exists(filepath)) {
|
|
|
|
grunt.log.warn('File "' + filepath + '" not found.');
|
|
|
|
result = false;
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}).map(function(filepath) {
|
|
|
|
// Read file source.
|
2013-09-12 13:53:11 +04:00
|
|
|
var src = grunt.file.read(filepath);
|
2013-09-11 22:06:40 +04:00
|
|
|
// Replace the version
|
2013-09-12 13:45:02 +04:00
|
|
|
src = src.split(tag).join(version);
|
2013-09-11 22:06:40 +04:00
|
|
|
// Write the new file
|
2013-09-12 13:53:11 +04:00
|
|
|
grunt.log.writeln("Creating " + outPath + filepath.substring(filepath.lastIndexOf("/") + 1));
|
|
|
|
grunt.file.write(outPath + filepath.substring(filepath.lastIndexOf("/") + 1), header + src);
|
2013-09-11 22:06:40 +04:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2013-06-12 18:33:29 +04:00
|
|
|
// Default tasks
|
2013-09-11 22:06:40 +04:00
|
|
|
grunt.registerTask('default', ['concat', 'jslint', 'uglify', 'connect', 'qunit', 'prop']);
|
2014-01-19 16:53:29 +04:00
|
|
|
grunt.registerTask('test:unit', ['concat:test', 'karma:unit']);
|
2014-01-19 17:39:01 +04:00
|
|
|
grunt.registerTask('test', ['karma:continuous:start', 'watch']);
|
2013-05-21 15:42:17 +04:00
|
|
|
|
|
|
|
};
|