Use service catalog and update version
[pithos-ios] / Classes / NSString+Conveniences.m
1 //
2 //  NSString+Conveniences.m
3 //  OpenStack
4 //
5 //  Created by Mike Mayo on 10/9/10.
6 //  The OpenStack project is provided under the Apache 2.0 license.
7 //
8
9 #import "NSString+Conveniences.h"
10
11 @implementation NSString (Conveniences)
12
13 - (BOOL)isURL {
14     return [self hasPrefix:@"http://"] || [self hasPrefix:@"https://"];
15 //    return [[NSPredicate predicateWithFormat:@"SELF MATCHES %@",
16 //             @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+"]
17 //            evaluateWithObject:self];
18 //    return [[NSPredicate predicateWithFormat:@"SELF MATCHES %@",
19 //             @"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-\\+ ./?%&=]*)?"]
20 //            evaluateWithObject:self];
21 }
22
23 - (NSString *)replace:(NSString *)s with:(NSString *)r {
24     if ([r isKindOfClass:[NSString class]]) {
25         return [self stringByReplacingOccurrencesOfString:s withString:r];
26     } else {
27         return [self stringByReplacingOccurrencesOfString:s withString:[r description]];
28     }
29 }
30
31 - (NSString *)replace:(NSString *)s withInt:(NSInteger)i {
32     return [self replace:s with:[NSString stringWithFormat:@"%i", i]];
33 }
34
35 + (NSString *)encodeToPercentEscape:(NSString *)string {
36     return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, 
37                                                                  (CFStringRef)string, 
38                                                                  NULL, 
39                                                                  (CFStringRef)@"!*'();:@&=+$,/?%#[]", 
40                                                                  kCFStringEncodingUTF8)) autorelease];
41 }
42
43 + (NSString *)encodeToPercentEscape:(NSString *)string charactersToEncode:(NSString *)charactersToEncode {
44     return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, 
45                                                                  (CFStringRef)string, 
46                                                                  NULL, 
47                                                                  (CFStringRef)charactersToEncode, 
48                                                                  kCFStringEncodingUTF8)) autorelease];
49 }
50
51
52 + (NSString *)decodeFromPercentEscape:(NSString *)string {
53     return [((NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, 
54                                                                                  (CFStringRef)string,
55                                                                                  (CFStringRef)@"", 
56                                                                                  kCFStringEncodingUTF8)) autorelease];
57 }
58
59 @end