diff --git a/Classes/Extensions/NSURL+Extensions.h b/Classes/Extensions/NSURL+Extensions.h index 411de26a..b3b611cc 100644 --- a/Classes/Extensions/NSURL+Extensions.h +++ b/Classes/Extensions/NSURL+Extensions.h @@ -8,6 +8,7 @@ - (NSURL *)URLByAppendingParams:(NSDictionary *)params; - (NSURL *)URLByAppendingTrailingSlash; - (NSURL *)URLByDeletingTrailingSlash; +- (NSURL *)URLByAppendingFragment:(NSString *)string; - (NSDictionary *)queryDictionary; - (BOOL)hasTrailingSlash; - (BOOL)isGitHubURL; diff --git a/Classes/Extensions/NSURL+Extensions.m b/Classes/Extensions/NSURL+Extensions.m index f903e71d..36fe7915 100644 --- a/Classes/Extensions/NSURL+Extensions.m +++ b/Classes/Extensions/NSURL+Extensions.m @@ -104,6 +104,15 @@ - (NSDictionary *)queryDictionary { return dict; } +- (NSURL *)URLByAppendingFragment:(NSString *)fragment { + NSString *oldFragment = self.fragment; + NSString *absoluteString = self.absoluteString; + if (oldFragment) [absoluteString substringWithRange:NSMakeRange(0, absoluteString.length - oldFragment.length + 1)]; + absoluteString = [absoluteString stringByAppendingString:@"#"]; + absoluteString = [absoluteString stringByAppendingString:fragment]; + return [NSURL URLWithString:absoluteString]; +} + // Checks the host to see whether or not this is a GitHub URL. // Assumes that relative links are also GitHubcom URLs. - (BOOL)isGitHubURL {