timetable
Version:
Using GTFS and other sources to produce beautiful and usable timetables for public transport.
62 lines (51 loc) • 2.19 kB
JavaScript
// Generated by CoffeeScript 1.7.1
(function() {
var $count, $show, as_transformer, fs, log, read_trips, route, transform_stream;
fs = require('fs');
transform_stream = require('stream-transform');
log = console.log;
as_transformer = function(method) {
return transform_stream(method, {
parallel: 11
});
};
$count = function(input_stream, title) {
var count;
count = 0;
input_stream.on('end', function() {
return log((title != null ? title : 'Count') + ':', count);
});
return as_transformer((function(_this) {
return function(record, handler) {
count += 1;
return handler(null, record);
};
})(this));
};
$show = function() {
return as_transformer((function(_this) {
return function(record, handler) {
log(record);
return handler(null, record);
};
})(this));
};
read_trips = function(route, handler) {
var input;
input = fs.createReadStream(route);
input.on('end', function() {
log('ok: trips');
return handler(null);
});
input.setMaxListeners(100);
input.pipe($count(input, 'trips A')).pipe($count(input, 'trips B')).pipe($count(input, 'trips C')).pipe($count(input, 'trips D')).pipe($count(input, 'trips E')).pipe($count(input, 'trips F')).pipe($count(input, 'trips G')).pipe($count(input, 'trips H')).pipe($count(input, 'trips I')).pipe($count(input, 'trips J')).pipe($count(input, 'trips K')).pipe($count(input, 'trips M')).pipe($count(input, 'trips N')).pipe($count(input, 'trips O')).pipe($count(input, 'trips P')).pipe($count(input, 'trips Q')).pipe($count(input, 'trips R')).pipe($count(input, 'trips R')).pipe($count(input, 'trips S')).pipe($count(input, 'trips T')).pipe($count(input, 'trips U')).pipe($count(input, 'trips V')).pipe($count(input, 'trips W')).pipe($count(input, 'trips X')).pipe($count(input, 'trips Y')).pipe($count(input, 'trips Z'));
return null;
};
route = '/Volumes/Storage/cnd/node_modules/timetable-data/germany-berlin-2014/agency.txt';
read_trips(route, function(error) {
if (error != null) {
throw error;
}
return log('ok');
});
}).call(this);