diff --git a/ConciseKitSpecs/Spec/NSStringConciseKitSpec.m b/ConciseKitSpecs/Spec/NSStringConciseKitSpec.m index 9f4dd65..88d1af1 100644 --- a/ConciseKitSpecs/Spec/NSStringConciseKitSpec.m +++ b/ConciseKitSpecs/Spec/NSStringConciseKitSpec.m @@ -38,6 +38,13 @@ assertThat([@"ab cd ef" $split], equalTo($arr(@"ab",@"cd",@"ef"))); }); }); + + describe(@"-$trim", ^{ + it(@"removes leading and trailing whitespace", ^{ + assertThat([@"\t \n foo \t \n " $trim], equalTo(@"foo")); + }); + }); + }); describe(@"NSMutableString (ConciseKit)", ^{ @@ -91,6 +98,16 @@ assertThat(mstring, equalTo(@"bar")); }); }); + + describe(@"-$chars", ^{ + it(@"splits the string into characters", ^{ + assertThat([@"abc" $chars], equalTo($arr(@"a", @"b", @"c"))); + }); + + it(@"returns an empty array for an empty string", ^{ + assertThat([@"" $chars], equalTo($arr(nil))); + }); + }); }); } DESCRIBE_END \ No newline at end of file diff --git a/src/NSString+ConciseKit.h b/src/NSString+ConciseKit.h index 9648b8c..c311da5 100644 --- a/src/NSString+ConciseKit.h +++ b/src/NSString+ConciseKit.h @@ -6,6 +6,8 @@ - (NSString *)$prepend:(NSString *)aString; - (NSArray *)$split:(NSString *)aString; - (NSArray *)$split; +- (NSArray *)$chars; +- (NSString *)$trim; @end diff --git a/src/NSString+ConciseKit.m b/src/NSString+ConciseKit.m index 4083227..4255e95 100644 --- a/src/NSString+ConciseKit.m +++ b/src/NSString+ConciseKit.m @@ -15,7 +15,20 @@ @implementation NSString (ConciseKit) } - (NSArray *)$split { - return [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + return [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; +} + +- (NSArray *)$chars { + NSMutableArray *array = [[[NSMutableArray alloc] init] autorelease]; + for (int i=0; i < [self length]; i++) { + NSString *spot = [NSString stringWithFormat:@"%c", [self characterAtIndex:i]]; + [array addObject: spot]; + } + return array; +} + +- (NSString*)$trim { + return [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; } @end