diff --git a/RCRouter/Classes/RCRouter.h b/RCRouter/Classes/RCRouter.h index a7c54db..570d57b 100644 --- a/RCRouter/Classes/RCRouter.h +++ b/RCRouter/Classes/RCRouter.h @@ -32,6 +32,7 @@ + (void)dispatch:(NSString*)route; + (void)remove:(NSString*)route; + (void)removeAllRoutesToReceiver:(id)receiver; ++ (BOOL)canRespondToRoute:(NSString*)route; // To Do + (void)addDelegate:(id)delegate; diff --git a/RCRouter/Classes/RCRouter.m b/RCRouter/Classes/RCRouter.m index 80eddf6..986f5e0 100644 --- a/RCRouter/Classes/RCRouter.m +++ b/RCRouter/Classes/RCRouter.m @@ -59,6 +59,10 @@ + (void)removeAllRoutesToReceiver:(id)receiver { } ++ (BOOL)canRespondToRoute:(NSString*)route { + return [[RCRouter sharedRouter] canRespondToRoute:route]; +} + + (void)addDelegate:(id)delegate { [[RCRouter sharedRouter] addDelegate:delegate]; @@ -103,6 +107,23 @@ - (void)map:(NSString*)route to:(id)reciever with:(SEL)selector { } +- (BOOL)canRespondToRoute:(NSString*)route { + NSEnumerator *routeEnumerator = [_routes objectEnumerator]; + RCRoute *routeObj; + + while ((routeObj = [routeEnumerator nextObject])) { + + // found a match + if ( [routeObj matches:route] ) { + return YES; + } + + } + + return NO; + +} + - (void)dispatch:(NSString*)path { // check with delegate if this is a vaild path