12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- //
- // NSObject+KiwiAdditions.m
- // Kiwi
- //
- // Created by Luke Redpath on 24/01/2011.
- // Copyright 2011 Allen Ding. All rights reserved.
- //
- #import "KWGenericMatchingAdditions.h"
- #import "KWGenericMatcher.h"
- #import "KWGenericMatchEvaluator.h"
- @implementation NSObject (KiwiGenericMatchingAdditions)
- - (BOOL)isEqualOrMatches:(id)object {
- if ([KWGenericMatchEvaluator isGenericMatcher:self]) {
- return [KWGenericMatchEvaluator genericMatcher:self matches:object];
- }
- return [self isEqual:object];
- }
- @end
- @implementation NSArray (KiwiGenericMatchingAdditions)
- - (BOOL)containsObjectEqualToOrMatching:(id)object {
- if ([KWGenericMatchEvaluator isGenericMatcher:object]) {
- return [self containsObjectMatching:object];
- }
- return [self containsObject:object];
- }
- - (BOOL)containsObjectMatching:(id)matcher {
- NSIndexSet *indexSet = [self indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
- BOOL matches = [KWGenericMatchEvaluator genericMatcher:matcher matches:obj];
- if (matches) {
- *stop = YES;
- }
- return matches;
- }];
- return (indexSet.count > 0);
- }
- @end
- @implementation NSSet (KiwiGenericMatchingAdditions)
- - (BOOL)containsObjectEqualToOrMatching:(id)object {
- if ([KWGenericMatchEvaluator isGenericMatcher:object]) {
- return [[self allObjects] containsObjectMatching:object];
- }
- return [self containsObject:object];
- }
- @end
- @implementation NSOrderedSet (KiwiGenericMatchingAdditions)
- - (BOOL)containsObjectEqualToOrMatching:(id)object {
- if ([KWGenericMatchEvaluator isGenericMatcher:object]) {
- return [[self array] containsObjectMatching:object];
- }
- return [self containsObject:object];
- }
- @end
|