diff options
| author | Alon Levy <alon@pobox.com> | 2014-10-12 23:43:43 +0300 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2014-10-12 23:47:55 +0300 |
| commit | 64bb111592675a5f2d48ca141ab3ba813d740dd4 (patch) | |
| tree | 887777e2461d39d2e94a0fd553240c53757df024 /scripts | |
| parent | 0911cf3f355fcd6d96fe6dbe2248ef4ee150e825 (diff) | |
Fixes #85 - compare using lower case
The whole lower case thing is a hack. We should separete id and name.
But right now it seems to be holding.
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/rhizicore.js | 22 | ||||
| -rw-r--r-- | scripts/textanalysis.js | 23 |
2 files changed, 29 insertions, 16 deletions
diff --git a/scripts/rhizicore.js b/scripts/rhizicore.js index 74ae2869..86a560a9 100644 --- a/scripts/rhizicore.js +++ b/scripts/rhizicore.js @@ -210,7 +210,18 @@ function myGraph(el) { var changed_nodes; var verbose = false; // XXX should be global. should have only one global. sigh. var set_old_id, set_new_id; + var new_id_to_name = {}; + new_nodes.map(function (f) { + if (!f.name) { + f.name = f.id; + } + f.id = f.id.toLowerCase(); + new_id_to_name[f.id] = f.name; + if (verbose) { + console.log('new_id_to_name ' + f.id + ' -> ' + new_id_to_name[f.id]); + } + }); new_nodes.sort(); new_links.sort(); if (new_nodes.length != state_nodes.length || new_links.length != state_links.length) { @@ -219,12 +230,12 @@ function myGraph(el) { } return {graph_same: false}; } - changed_nodes = set_diff(set_from_array(state_nodes.map(function(d) { return d.id; })), - set_from_array(new_nodes)); + changed_nodes = set_diff(set_from_array(state_nodes.map(function(d) { return d.id.toLowerCase(); })), + set_from_array(new_nodes.map(function (f) { return f.id.toLowerCase(); }))); // we allow any number of changed nodes as long as we it is 1 or 2 :) if (changed_nodes.a_b.length <= 2) { - set_old_id = set_from_array(changed_nodes.a_b.map(function (f) { return f.toLowerCase(); })); - set_new_id = set_from_array(changed_nodes.b_a.map(function (f) { return f.toLowerCase(); })); + set_old_id = set_from_array(changed_nodes.a_b); + set_new_id = set_from_array(changed_nodes.b_a); } else { if (verbose) { console.log('changed too many nodes'); @@ -252,7 +263,8 @@ function myGraph(el) { return {graph_same: false}; } } - return {graph_same: true, old_id: changed_nodes.a_b, new_id: changed_nodes.b_a}; + return {graph_same: true, old_id: changed_nodes.a_b, new_id: changed_nodes.b_a, + new_name: changed_nodes.b_a.map(function (k) { return new_id_to_name[k]; })}; } this.addLink = function(sourceId, targetId, name, state, drop_conjugator_links) { diff --git a/scripts/textanalysis.js b/scripts/textanalysis.js index edd2a0d7..0b9318b7 100644 --- a/scripts/textanalysis.js +++ b/scripts/textanalysis.js @@ -369,20 +369,21 @@ var textAnalyser2 = function (newtext, finalize) { ret.applyToGraph = function(graph) { window.ret = ret; - var comp = graph.compareSubset('temp', ret.nodes.filter( - function(node) { - return !graph.hasNode(node.id, "perm"); - }).map(function (node) { - return node.id; - }), ret.links.map( - function (link) { - return [link.sourceId.toLowerCase(), link.targetId.toLowerCase()]; - } - )); + var comp = graph.compareSubset('temp', + ret.nodes.filter( + function(node) { + return !graph.hasNode(node.id, "perm"); + }).map(function (node) { + return {id: node.id, name: node.name}; + }), + ret.links.map( + function (link) { + return [link.sourceId.toLowerCase(), link.targetId.toLowerCase()]; + })); var k, n, l; if (comp.graph_same && !finalize) { if (comp.old_id && comp.new_id) { - up_to_two_renames(graph, comp.old_id, comp.new_id); + up_to_two_renames(graph, comp.old_id, comp.new_name); } for (k in ret.links) { l = ret.links[k]; |
