Commit Graph

22 Commits

Author SHA1 Message Date
John Firebaugh
ddc5e324f6 Extract iD.Difference
iD.Difference represents the difference between two graphs.
It knows how to calculate the set of entities that were
created, modified, or deleted, and also contains the logic
for recursively extending a difference to the complete set
of entities that will require a redraw, taking into account
child and parent relationships.

Additionally, all history mutators now return a difference.
2013-02-02 19:47:56 -05:00
Ansis Brammanis
846cf6e43d Add difference tests 2013-01-31 13:37:54 -05:00
Ansis Brammanis
a82b81a3c2 Add tests for #replace #remove #rebase 2013-01-30 16:40:00 -05:00
Ansis Brammanis
a317859b0f Don't re-add removed parentways, don't duplicate 2013-01-30 15:44:03 -05:00
Ansis Brammanis
e08364d492 working parentRels 2013-01-30 13:18:44 -05:00
Ansis Brammanis
ba68a238fe Working rebase 2013-01-30 12:26:40 -05:00
John Firebaugh
c5d691d79d Graph#rebase 2013-01-28 16:08:08 -05:00
John Firebaugh
5ea855e18d Replace Graph#fetch with Graph#childNodes
Having two kinds of Ways (fetched and non-fetched)
introduced some accidental complexity. This brings things
more in line with how parentWays/parentRelations work.

Fixes #73.
2013-01-25 15:10:44 -05:00
John Firebaugh
4874199401 Add Graph#update
This can be used to reduce graph churn when there are
multiple changes to make.
2013-01-25 13:27:33 -05:00
Tom MacWright
eedc0fce9d Fast parent calculation. 2013-01-09 14:52:39 -05:00
Tom MacWright
adb8ab53ce Update relation tests 2012-12-07 16:01:14 -05:00
John Firebaugh
ea4b93d88b Graph#difference 2012-12-07 12:35:57 -05:00
John Firebaugh
255e3aaabd Modify Graph so it can track deleted ids 2012-12-07 12:32:24 -05:00
John Firebaugh
3e45afbc5e Move history annotation to History#perform/replace
Actions are too low-level for annotations.
2012-12-07 10:35:39 -05:00
John Firebaugh
67ffd2e71b Revert "Copy entity in Graph#fetch"
This reverts commit 12d02e0a6b.
2012-12-06 19:16:54 -05:00
John Firebaugh
0e2889d5d6 Add freezing specs 2012-12-06 14:20:02 -05:00
John Firebaugh
d26c8638b3 Allow Graph to be constructed with an array of entities
Useful for tests.
2012-12-05 16:14:39 -05:00
John Firebaugh
4a3169bb1d Test/refine iD.actions.remove 2012-12-05 16:14:39 -05:00
John Firebaugh
551a2df24e Replace Entity.{lat,lon} with Entity.loc
Fixes #189
2012-12-05 09:48:00 -05:00
John Firebaugh
12d02e0a6b Copy entity in Graph#fetch
This shouldn't be necessary, but someone is modifying them
in place and it's causing problems elsewhere.
2012-12-04 17:27:02 -05:00
John Firebaugh
60e7698f1a Don't mutate entity in place 2012-12-04 14:00:29 -05:00
John Firebaugh
b4707c3a1f Mirror main directory structure in specs 2012-12-04 09:50:07 -05:00