in archive/src/app/directives/seqtreeTable-directive.js [21:108]
scope.makeTable = function(){
console.log("makeTable");
var seq = scope.sequence;
var regexp = seq.join('( | .*)');
var sentPatt = new RegExp(regexp, 'g');
var cleanedTweets = scope.tweets
.map(function(row){
row[1] = row[1].replace(/\\\"/g, '');
return row;
})
.filter(function(row){
return sentPatt.test(row[1]);
})
var groups = _.groupBy(cleanedTweets, function(row){
var tweet = row[1];
return tweet
.replace(/ /g, '')
.replace(/http:\/\/t.co\/[A-Za-z0-9]*/g, '(link)');
});
var finalTweets = Object.keys(groups).map(function(key){
return groups[key][0];
});
// var patterns = finalTweets.map(function(row){
// var s = sentPatt.exec(row[1]);
// console.log('row[1]', row[1], s);
// var r = [];
// r.push({
// chunk: row[1].slice(0, s.index)
// });
// for( var i = 0; i < seq.length-1; i++ ) {
// r.push({
// chunk: seq[i],
// isAlignment: true
// });
// r.push({
// chunk: s[i+1]
// });
// }
// r.push({
// chunk: seq[seq.length-1],
// isAlignment: true
// });
// r.push({
// chunk: row[1].slice(s.index+s[0].length)
// });
// return r;
// });
var patterns = [];
finalTweets.forEach(function(row) {
var s = sentPatt.exec(row[1]);
if( s ) {
var r = [];
r.push({
chunk: row[1].slice(0, s.index)
});
for( var i = 0; i < seq.length-1; i++ ) {
r.push({
chunk: seq[i],
isAlignment: true
});
r.push({
chunk: s[i+1]
});
}
r.push({
chunk: seq[seq.length-1],
isAlignment: true
});
r.push({
chunk: row[1].slice(s.index+s[0].length)
});
patterns.push(r);
}
});
patterns.sort(function(a,b){
return a[0].chunk.localeCompare(b[0].chunk);
});
scope.patterns = patterns;
};