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