Removed old commented-out code.
[CleverRabbit.git] / RTKStringCategory.m
blobe3e6f0478be0b5c051fbc1b33fe3f6c93890a68e
1 //
2 //   RTKStringCategory.m
3 //   (CleverRabbit.app)
4 //
5 //   Copyright (c) 2005 A. Karl Keller (http://karlk.net)
6 //
7 //   This code is open-source, free software, made available without warranty under
8 //   the terms of the GNU General Public License, either version 2 or later (see 
9 //   http://www.gnu.org/licenses/gpl.html or included copy); as such, it may be 
10 //   redistributed and/or modified in accordance with that document.
13 #import "RTKStringCategory.h"
16 @implementation NSString (RTKStringCategory)
18 - (NSString *)verse
20     NSMutableString * string = [self mutableCopy];
21     [string replaceOccurrencesOfString:@":"
22                             withString:@"."
23                                options:NSLiteralSearch
24                                  range:NSMakeRange(0,[string length])];
25     return [string pathExtension];
28 - (NSString *)chapter
30     NSMutableString * string = [self mutableCopy];
31     [string replaceOccurrencesOfString:@":"
32                             withString:@"."
33                                options:NSLiteralSearch
34                                  range:NSMakeRange(0,[string length])];
35     string = [[string stringByDeletingPathExtension] mutableCopy];
36     return [[string componentsSeparatedByString:@" "] lastObject];
39 - (NSString *)book
41     NSMutableArray * stringArray = [[self componentsSeparatedByString:@" "] mutableCopy];
42     [stringArray removeLastObject];
43     return [stringArray componentsJoinedByString:@" "];
46 - (NSData *)utf8Data
48     // These three bytes go at the front of every utf8 text file.
49     char utf8Marker[3];
50     utf8Marker[0] = 0xef;
51     utf8Marker[1] = 0xbb;
52     utf8Marker[2] = 0xbf;
53     
54     NSData * data = [self dataUsingEncoding:NSUTF8StringEncoding];
55     
56     if(!data)
57         NSLog(@"nil data from string in utf8Data of RTKStringCategory");
58     
59     // Get extra room for the utf8 marker.
60     void * outputData = malloc([data length] + 3);
61     void * rawData = (void *) [data bytes];
62     
63     // Copy marker and text together.
64     memcpy(outputData, &utf8Marker, 3);
65     memcpy(outputData + 3, rawData, [data length]);
66     
67     // And we are done exporting plain text!
68     data = [NSData dataWithBytesNoCopy:outputData
69                                 length:[data length] + 3
70                           freeWhenDone:YES];
71     return data;
74 - (BOOL)containsSubstring:(NSString *)substring
76     return ([self rangeOfString:substring].location != NSNotFound);
79 - (BOOL)containsCaseInsensitiveSubstring:(NSString *)substring
81     return [[self lowercaseString] containsSubstring:[substring lowercaseString]];
84 @end