diff options
| author | mo khan <mo@mokhan.ca> | 2013-07-14 15:33:09 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2013-07-14 15:33:09 -0600 |
| commit | 61ca9c941a0fea00b6d51019b9431267163cdac6 (patch) | |
| tree | 947b31250ad0aca796ddafc4b79cd60aa95ae169 /cakeside-ios/utility | |
| parent | 6ff632a1444a214ba61597ae9e1a034e5f1f6073 (diff) | |
get login working
Diffstat (limited to 'cakeside-ios/utility')
| -rw-r--r-- | cakeside-ios/utility/NSDictionary+Additions.h | 13 | ||||
| -rw-r--r-- | cakeside-ios/utility/NSDictionary+Additions.m | 26 | ||||
| -rw-r--r-- | cakeside-ios/utility/NSString+Additions.h | 33 | ||||
| -rw-r--r-- | cakeside-ios/utility/NSString+Additions.m | 159 |
4 files changed, 231 insertions, 0 deletions
diff --git a/cakeside-ios/utility/NSDictionary+Additions.h b/cakeside-ios/utility/NSDictionary+Additions.h new file mode 100644 index 0000000..456359b --- /dev/null +++ b/cakeside-ios/utility/NSDictionary+Additions.h @@ -0,0 +1,13 @@ +// +// NSDictionary+NSDictionary_Additions.h +// fastcab-driver +// +// Created by Rick Cotter on 12-03-20. +// Copyright (c) 2012 Assn. All rights reserved. +// + +#import <Foundation/Foundation.h> + +@interface NSDictionary (Additions) +-(id) objectForKey:(NSString *)key defaultValue:(id)defaultValue; +@end diff --git a/cakeside-ios/utility/NSDictionary+Additions.m b/cakeside-ios/utility/NSDictionary+Additions.m new file mode 100644 index 0000000..01f3569 --- /dev/null +++ b/cakeside-ios/utility/NSDictionary+Additions.m @@ -0,0 +1,26 @@ +// +// NSDictionary+NSDictionary_Additions.m +// fastcab-driver +// +// Created by Rick Cotter on 12-03-20. +// Copyright (c) 2012 Assn. All rights reserved. +// + +#import "NSDictionary+Additions.h" + +@implementation NSDictionary (Additions) + +-(id) objectForKey:(NSString *)key defaultValue:(id)defaultValue { + id value = [self objectForKey:key]; + if (!value) { + return defaultValue; + } + + if (value == [NSNull null]) { + return defaultValue; + } + + return value; +} + +@end diff --git a/cakeside-ios/utility/NSString+Additions.h b/cakeside-ios/utility/NSString+Additions.h new file mode 100644 index 0000000..a7f8a75 --- /dev/null +++ b/cakeside-ios/utility/NSString+Additions.h @@ -0,0 +1,33 @@ +// +// NSString+Additions.h +// Cardinal +// +// Created by Cory Smith on 10-03-28. +// Copyright 2010 Assn. All rights reserved. +// + +@interface NSString (md5) + ++ (NSString *) md5:(NSString *)str; + +@end + +@interface NSString (Assn) +- (NSString *)trim; +- (BOOL)isEmpty; +- (BOOL)startsWith:(NSString *)starting; +- (BOOL)endsWith:(NSString *)ending; +- (BOOL)contains:(NSString *)text; +- (NSString *)urlEncode; +- (NSString *)replace:(NSString *)find with:(NSString *)replacement; +- (NSString *)replaceAll:(NSArray *)keys with:(NSArray *)values; + +// Replace newlines with <br /> tags. +- (NSString *)stringWithNewLinesAsBRs; + +- (NSString *)sanitizeForHTMLOutput; + ++ (NSString *)generateUUID; + +@end + diff --git a/cakeside-ios/utility/NSString+Additions.m b/cakeside-ios/utility/NSString+Additions.m new file mode 100644 index 0000000..57c782c --- /dev/null +++ b/cakeside-ios/utility/NSString+Additions.m @@ -0,0 +1,159 @@ +// +// NSString+Additions.m +// Cardinal +// +// Created by Cory Smith on 10-03-28. +// Copyright 2010 Assn. All rights reserved. +// + +#import "NSString+Additions.h" + + +#import <CommonCrypto/CommonDigest.h> + +@implementation NSString (md5) + ++ (NSString *) md5:(NSString *)str { + const char *cStr = [str UTF8String]; + unsigned char result[16]; + CC_MD5( cStr, strlen(cStr), result ); + return [NSString stringWithFormat: + @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", + result[0], result[1], result[2], result[3], + result[4], result[5], result[6], result[7], + result[8], result[9], result[10], result[11], + result[12], result[13], result[14], result[15] + ]; +} + +@end + +@implementation NSString (Assn) + +- (NSString *)trim { + return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; +} + +- (BOOL)isEmpty { + return [[self trim] isEqualToString:@""]; +} + +- (BOOL)endsWith:(NSString *)ending { + + int indexToCheck = [self length] - [ending length]; + + if(indexToCheck >= 0) + return [[self substringFromIndex:indexToCheck] isEqualToString:ending]; + + return NO; +} + +- (BOOL)startsWith:(NSString *)starting { + if([starting isEmpty] || [starting length] > self.length) + return NO; + + return [[self substringToIndex:[starting length]] isEqualToString:starting]; +} + +- (NSString *)replace:(NSString *)find with:(NSString *)replacement { + return [self stringByReplacingOccurrencesOfString:find withString:replacement]; +} + + +- (NSString *)replaceAll:(NSArray *)keys with:(NSArray *)values { + + NSMutableString *s = [NSMutableString stringWithString:self]; + + for (int i = 0; i < keys.count; i++) { + [s replaceOccurrencesOfString:[keys objectAtIndex:i] + withString:[values objectAtIndex:i] + options:NSLiteralSearch + range:NSMakeRange(0, [s length])]; + } + + return s; +} + + +- (BOOL)contains:(NSString *)text { + NSRange range = [[self lowercaseString] rangeOfString:[text lowercaseString]]; + return range.location != NSNotFound; +} + +- (NSString *)urlEncode +{ + NSString *result = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)self, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8); + return result; +} + +- (NSString *)stringWithNewLinesAsBRs { + + // Strange New lines: + // Next Line, U+0085 + // Form Feed, U+000C + // Line Separator, U+2028 + // Paragraph Separator, U+2029 + + // Scanner + NSScanner *scanner = [[NSScanner alloc] initWithString:self]; + [scanner setCharactersToBeSkipped:nil]; + NSMutableString *result = [[NSMutableString alloc] init]; + NSString *temp; + NSCharacterSet *newLineCharacters = [NSCharacterSet characterSetWithCharactersInString: + [NSString stringWithFormat:@"\n\r"]]; + // Scan + do { + + // Get non new line characters + temp = nil; + [scanner scanUpToCharactersFromSet:newLineCharacters intoString:&temp]; + if (temp) [result appendString:temp]; + temp = nil; + + // Add <br /> s + if ([scanner scanString:@"\r\n" intoString:nil]) { + + // Combine \r\n into just 1 <br /> + [result appendString:@"<br />"]; + + } else if ([scanner scanCharactersFromSet:newLineCharacters intoString:&temp]) { + + // Scan other new line characters and add <br /> s + if (temp) { + for (NSUInteger i = 0; i < temp.length; i++) { + [result appendString:@"<br />"]; + } + } + + } + + } while (![scanner isAtEnd]); + + // Cleanup & return + NSString *retString = [NSString stringWithString:result]; + + // Return + return retString; + +} + + +- (NSString *)sanitizeForHTMLOutput +{ + NSString *result = self; + if (!result) { result = @""; } + result = [result trim]; + result = [result stringWithNewLinesAsBRs]; + return result; +} + ++ (NSString *)generateUUID +{ + CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault); + NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId); + CFRelease(newUniqueId); + + return uuidString; +} + +@end |
