From: Joe Wreschnig Date: Sun, 3 Mar 2013 12:57:46 +0000 (+0100) Subject: Implement equality checks for Targets. Don't consider equal targets as conflicting... X-Git-Tag: version-1.0~54 X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=commitdiff_plain;h=1700c86669723045bf7abd177ca519f47656e995 Implement equality checks for Targets. Don't consider equal targets as conflicting when importing. --- diff --git a/ConfigsController.m b/ConfigsController.m index 0c32b8b..fb50bc3 100644 --- a/ConfigsController.m +++ b/ConfigsController.m @@ -200,7 +200,8 @@ BOOL conflict; Config *mergeInto = self[cfg.name]; for (id key in cfg.entries) { - if (mergeInto.entries[key]) { + if (mergeInto.entries[key] + && ![mergeInto.entries[key] isEqual:cfg.entries[key]]) { conflict = YES; break; } diff --git a/Target.m b/Target.m index 700a151..493f94a 100644 --- a/Target.m +++ b/Target.m @@ -28,6 +28,15 @@ return nil; } +- (BOOL)isEqual:(id)object { + return [object isKindOfClass:Target.class] + && [[self serialize] isEqual:[object serialize]]; +} + +- (NSUInteger)hash { + return [[self serialize] hash]; +} + + (Target *)targetDeserialize:(NSDictionary *)serialization withConfigs:(NSArray *)configs { // Don't crash loading old configs (but don't load them either).