Skip to content

Commit

Permalink
Merge pull request #23 from marmelab/update_dependencies
Browse files Browse the repository at this point in the history
[RFR] move d3 to npm dependencies and add it to bower.json
  • Loading branch information
ThieryMichel committed Jun 1, 2015
2 parents 59e22ed + a3f4229 commit 3294dde
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 97 deletions.
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
sudo: false
language: node_js
node_js:
- "0.10.36"
install:
- npm install
script:
- gulp test
3 changes: 3 additions & 0 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
"chart",
"event"
],
"dependencies": {
"d3": "^3.4.11"
},
"license": "MIT",
"ignore": [
"**/.*",
Expand Down
21 changes: 13 additions & 8 deletions gulpFile.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ var streamify = require('gulp-streamify');
var karma = require('karma').server;
var source = require('vinyl-source-stream');



function bundle(watching) {
function bundle(watching, done) {
var bundler, rebundle;

bundler = browserify('./lib/main.js', {
Expand All @@ -26,29 +24,36 @@ function bundle(watching) {
bundler = watchify(bundler);
}

rebundle = function () {
rebundle = function (done) {
var stream = bundler.bundle();
stream.on('error', function (error) {
console.error(error);
});
stream = stream.pipe(source('eventDrops.js'));
try {

if (!watching) {
stream.pipe(streamify(uglify()));
}
stream.pipe(gulp.dest('./src/'));
} catch (e) {
console.log(e);
if (done) {
return done(e);
}

}
if(done) {
stream.on('end', done);
}
};

bundler.on('update', rebundle);

return rebundle();
return rebundle(done);
}

gulp.task('browserify', function () {
return bundle(false);
gulp.task('browserify', function (done) {
return bundle(false, done);
});

gulp.task('watch', function () {
Expand Down
57 changes: 30 additions & 27 deletions lib/delimiter.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,40 +8,43 @@ var defaultConfig = {
dateFormat: null
};

module.exports = function (config) {
module.exports = function (d3) {

config = config || {};
for (var key in defaultConfig) {
config[key] = config[key] || defaultConfig[key];
}
return function (config) {

function delimiter(selection) {
selection.each(function (data) {
d3.select(this).selectAll('text').remove();
config = config || {};
for (var key in defaultConfig) {
config[key] = config[key] || defaultConfig[key];
}

var limits = config.xScale.domain();
function delimiter(selection) {
selection.each(function (data) {
d3.select(this).selectAll('text').remove();

d3.select(this).append('text')
.text(function () {
var limits = config.xScale.domain();

return config.dateFormat(limits[0]);
})
.classed('start', true)
;
d3.select(this).append('text')
.text(function () {

d3.select(this).append('text')
.text(function () {
return config.dateFormat(limits[0]);
})
.classed('start', true)
;

return config.dateFormat(limits[1]);
})
.attr('text-anchor', 'end')
.attr('transform', 'translate(' + config.xScale.range()[1] + ')')
.classed('end', true)
;
});
}
d3.select(this).append('text')
.text(function () {

configurable(delimiter, config);
return config.dateFormat(limits[1]);
})
.attr('text-anchor', 'end')
.attr('transform', 'translate(' + config.xScale.range()[1] + ')')
.classed('end', true)
;
});
}

return delimiter;
configurable(delimiter, config);

return delimiter;
};
};
4 changes: 2 additions & 2 deletions lib/eventDrops.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
/* global require, module */

var configurable = require('./util/configurable');
var eventLine = require('./eventLine');
var delimiter = require('./delimiter');

module.exports = function (d3) {
var eventLine = require('./eventLine')(d3);
var delimiter = require('./delimiter')(d3);

var defaultConfig = {
start: new Date(0),
Expand Down
100 changes: 51 additions & 49 deletions lib/eventLine.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,54 +8,56 @@ var defaultConfig = {
xScale: null
};

module.exports = function (config) {

config = config || {
xScale: null,
eventColor: null
};
for (var key in defaultConfig) {
config[key] = config[key] || defaultConfig[key];
}

var eventLine = function eventLine(selection) {
selection.each(function (data) {
d3.select(this).selectAll('text').remove();

d3.select(this).append('text')
.text(function(d) {
var count = filterData(d.dates, config.xScale).length;
return d.name + (count > 0 ? ' (' + count + ')' : '');
})
.attr('text-anchor', 'end')
.attr('transform', 'translate(-20)')
.style('fill', 'black')
;

d3.select(this).selectAll('circle').remove();

var circle = d3.select(this).selectAll('circle')
.data(function(d) {
// filter value outside of range
return filterData(d.dates, config.xScale);
});

circle.enter()
.append('circle')
.attr('cx', function(d) {
return config.xScale(d);
})
.style('fill', config.eventColor)
.attr('cy', -5)
.attr('r', 10)
;

circle.exit().remove();

});
module.exports = function (d3) {
return function (config) {

config = config || {
xScale: null,
eventColor: null
};
for (var key in defaultConfig) {
config[key] = config[key] || defaultConfig[key];
}

var eventLine = function eventLine(selection) {
selection.each(function (data) {
d3.select(this).selectAll('text').remove();

d3.select(this).append('text')
.text(function(d) {
var count = filterData(d.dates, config.xScale).length;
return d.name + (count > 0 ? ' (' + count + ')' : '');
})
.attr('text-anchor', 'end')
.attr('transform', 'translate(-20)')
.style('fill', 'black')
;

d3.select(this).selectAll('circle').remove();

var circle = d3.select(this).selectAll('circle')
.data(function(d) {
// filter value outside of range
return filterData(d.dates, config.xScale);
});

circle.enter()
.append('circle')
.attr('cx', function(d) {
return config.xScale(d);
})
.style('fill', config.eventColor)
.attr('cy', -5)
.attr('r', 10)
;

circle.exit().remove();

});
};

configurable(eventLine, config);

return eventLine;
};

configurable(eventLine, config);

return eventLine;
};
9 changes: 5 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@
"type": "git",
"url": "https://github.com/marmelab/EventDrops"
},
"dependencies": {},
"dependencies": {
"d3": "3.4.11"
},
"devDependencies": {
"browserify": "5.11.2",
"d3": "3.4.11",
"gulp": "3.8.10",
"gulp-mocha": "0.5.2",
"gulp-streamify": "0.0.5",
"gulp-uglify": "^1.0.1",
"jsdom": "1.0.0-pre.6",
"karma": "0.12.23",
"karma-chrome-launcher": "0.1.4",
"karma": "0.12.35",
"karma-phantomjs-launcher": "0.1.4",
"karma-jasmine": "0.1.5",
"mocha": "1.21.4",
"vinyl-source-stream": "0.1.1",
Expand Down
14 changes: 10 additions & 4 deletions test/karma/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
'use strict';

// karma.conf.js
module.exports = function(config) {
config.set({
basePath: '../..',
frameworks: ['jasmine'],
browsers: ['Chrome'],
browsers: ['PhantomJS'],
plugins: [
'karma-jasmine',
'karma-phantomjs-launcher'
],
files: [
'node_modules/d3/d3.js',
'src/eventDrops.js',
'test/karma/*'
'./node_modules/d3/d3.js',
'./src/eventDrops.js',
'./test/karma/*'
]
});
};
4 changes: 2 additions & 2 deletions test/mocha/delimiter.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
"use strict";

var assert = require('assert');
var document = require('jsdom').jsdom("<html><head></head><body></body></html>");
var d3 = require('d3');
var document = require('jsdom').jsdom();

var delimiter = require('../../lib/delimiter');
var delimiter = require('../../lib/delimiter')(d3);

describe('delimiter', function () {
var graph, element, dateFormat, startDate, endDate;
Expand Down
2 changes: 1 addition & 1 deletion test/mocha/eventLine.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var assert = require('assert');
var document = require('jsdom').jsdom();

var filterData = require('../../lib/filterData');
var eventLine = require('../../lib/eventLine');
var eventLine = require('../../lib/eventLine')(d3);

describe('eventLine', function () {
var graph, elements;
Expand Down

0 comments on commit 3294dde

Please sign in to comment.