Skip to content
This repository was archived by the owner on Aug 16, 2023. It is now read-only.

Commit 4e49086

Browse files
committed
All the tests pass!
1 parent 304c62c commit 4e49086

14 files changed

Lines changed: 120 additions & 106 deletions

CMDQueryStringSerialization.xcodeproj/project.pbxproj

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
3BF7142818B3FB3200D596B6 /* CMDQueryStringWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF7142718B3FB3200D596B6 /* CMDQueryStringWriter.m */; };
1818
3BF7142918B3FB3200D596B6 /* CMDQueryStringWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF7142718B3FB3200D596B6 /* CMDQueryStringWriter.m */; };
1919
93832CBD18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93832CBC18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.m */; };
20-
93832CC618957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93832CC518957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.m */; };
20+
93832CC618957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93832CC518957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m */; };
2121
93832CC918957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93832CC818957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.m */; };
2222
93832CCC189582EF005D5744 /* CMDKeyValuePairString.m in Sources */ = {isa = PBXBuildFile; fileRef = 93832CCB189582EF005D5744 /* CMDKeyValuePairString.m */; };
2323
93832CCF18958BAF005D5744 /* NSString+CMDQueryStringSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 93832CCE18958BAF005D5744 /* NSString+CMDQueryStringSerialization.m */; };
@@ -48,6 +48,7 @@
4848
/* End PBXCopyFilesBuildPhase section */
4949

5050
/* Begin PBXFileReference section */
51+
3B63E2C518B415E7002812A5 /* CMDQueryStringValueTransformer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringValueTransformer.h; sourceTree = "<group>"; };
5152
3B6EAF9A188F5D78005D2EB4 /* libCMDQueryStringSerialization.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCMDQueryStringSerialization.a; sourceTree = BUILT_PRODUCTS_DIR; };
5253
3B6EAFA1188F5D78005D2EB4 /* CMDQueryStringSerialization-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CMDQueryStringSerialization-Prefix.pch"; sourceTree = "<group>"; };
5354
3B6EAFA2188F5D78005D2EB4 /* CMDQueryStringSerialization.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringSerialization.h; sourceTree = "<group>"; };
@@ -63,8 +64,8 @@
6364
93832CBB18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringMultipleKeysArrayTransformer.h; sourceTree = "<group>"; };
6465
93832CBC18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMDQueryStringMultipleKeysArrayTransformer.m; sourceTree = "<group>"; };
6566
93832CC118957E74005D5744 /* CMDQueryStringArrayTransformer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringArrayTransformer.h; sourceTree = "<group>"; };
66-
93832CC418957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringMultipleBracketedKeysArrayTransformer.h; sourceTree = "<group>"; };
67-
93832CC518957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMDQueryStringMultipleBracketedKeysArrayTransformer.m; sourceTree = "<group>"; };
67+
93832CC418957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringMultipleKeysWithBracketsArrayTransformer.h; sourceTree = "<group>"; };
68+
93832CC518957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m; sourceTree = "<group>"; };
6869
93832CC718957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMDQueryStringCommaSeparatedArrayTransformer.h; sourceTree = "<group>"; };
6970
93832CC818957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMDQueryStringCommaSeparatedArrayTransformer.m; sourceTree = "<group>"; };
7071
93832CCA189582EF005D5744 /* CMDKeyValuePairString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMDKeyValuePairString.h; sourceTree = "<group>"; };
@@ -177,13 +178,14 @@
177178
93832CC218957E89005D5744 /* Arrays */ = {
178179
isa = PBXGroup;
179180
children = (
181+
3B63E2C518B415E7002812A5 /* CMDQueryStringValueTransformer.h */,
180182
93832CC118957E74005D5744 /* CMDQueryStringArrayTransformer.h */,
181183
93832CC718957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.h */,
182184
93832CC818957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.m */,
183185
93832CBB18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.h */,
184186
93832CBC18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.m */,
185-
93832CC418957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.h */,
186-
93832CC518957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.m */,
187+
93832CC418957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.h */,
188+
93832CC518957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m */,
187189
);
188190
name = Arrays;
189191
sourceTree = "<group>";
@@ -274,7 +276,7 @@
274276
93832CC918957F8F005D5744 /* CMDQueryStringCommaSeparatedArrayTransformer.m in Sources */,
275277
3BF7142418B3FAD300D596B6 /* CMDQueryStringReader.m in Sources */,
276278
93832CCC189582EF005D5744 /* CMDKeyValuePairString.m in Sources */,
277-
93832CC618957F4A005D5744 /* CMDQueryStringMultipleBracketedKeysArrayTransformer.m in Sources */,
279+
93832CC618957F4A005D5744 /* CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m in Sources */,
278280
93832CBD18957BCD005D5744 /* CMDQueryStringMultipleKeysArrayTransformer.m in Sources */,
279281
3BF7142818B3FB3200D596B6 /* CMDQueryStringWriter.m in Sources */,
280282
);

CMDQueryStringSerialization/CMDQueryStringArrayTransformer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
//
88

99
/**
10-
Defines an interface for transforming a key and array of values into an array of query string key/value pairs.
10+
Defines an interface for transforming a key and array of values into an array
11+
of query string key/value pairs.
1112
*/
1213
@protocol CMDQueryStringArrayTransformer <NSObject>
1314

CMDQueryStringSerialization/CMDQueryStringCommaSeparatedArrayTransformer.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66
// Copyright (c) 2014 Caleb Davenport. All rights reserved.
77
//
88

9-
#import "CMDQueryStringArrayTransformer.h"
9+
#import "CMDQueryStringValueTransformer.h"
1010

11-
/**
12-
Transforms a key and array of values into a single key/value pair where the value contains the array's values separated by a comma.
13-
*/
14-
@interface CMDQueryStringCommaSeparatedArrayTransformer : NSObject <CMDQueryStringArrayTransformer>
11+
@interface CMDQueryStringCommaSeparatedArrayTransformer : NSObject <CMDQueryStringValueTransformer>
1512

1613
@end

CMDQueryStringSerialization/CMDQueryStringCommaSeparatedArrayTransformer.m

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,23 @@
66
// Copyright (c) 2014 Caleb Davenport. All rights reserved.
77
//
88

9-
#import "CMDKeyValuePairString.h"
109
#import "CMDQueryStringCommaSeparatedArrayTransformer.h"
1110
#import "NSString+CMDQueryStringSerialization.h"
1211

1312
@implementation CMDQueryStringCommaSeparatedArrayTransformer
1413

1514
#pragma mark - CMDQueryStringArrayTransformer
1615

17-
+ (NSArray *)keyValuePairStringsFromKey:(NSString *)key values:(NSArray *)values {
18-
NSMutableArray *escapedValues = [NSMutableArray arrayWithCapacity:[values count]];
16+
+ (NSString *)stringWithKey:(NSString *)key value:(id)value {
17+
NSMutableArray *escapedValues = [NSMutableArray arrayWithCapacity:[value count]];
1918

20-
[values enumerateObjectsUsingBlock:^(NSString *value, NSUInteger index, BOOL *stop) {
19+
[value enumerateObjectsUsingBlock:^(NSString *value, NSUInteger index, BOOL *stop) {
2120
[escapedValues addObject:[value cmd_stringByAddingEscapes]];
2221
}];
2322

24-
return @[[CMDKeyValuePairString pairStringWithKey:[key cmd_stringByAddingEscapes]
25-
value:[escapedValues componentsJoinedByString:@","]]];
23+
key = [key cmd_stringByAddingEscapes];
24+
value = [escapedValues componentsJoinedByString:@","];
25+
return [NSString stringWithFormat:@"%@=%@", key, value];
2626
}
2727

2828
@end

CMDQueryStringSerialization/CMDQueryStringMultipleBracketedKeysArrayTransformer.h

Lines changed: 0 additions & 16 deletions
This file was deleted.

CMDQueryStringSerialization/CMDQueryStringMultipleKeysArrayTransformer.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66
// Copyright (c) 2014 Caleb Davenport. All rights reserved.
77
//
88

9-
#import "CMDQueryStringArrayTransformer.h"
9+
#import "CMDQueryStringValueTransformer.h"
1010

11-
/**
12-
Transforms a key and array of values into multiple key/value pairs.
13-
*/
14-
@interface CMDQueryStringMultipleKeysArrayTransformer : NSObject <CMDQueryStringArrayTransformer>
11+
@interface CMDQueryStringMultipleKeysArrayTransformer : NSObject <CMDQueryStringValueTransformer>
1512

1613
@end

CMDQueryStringSerialization/CMDQueryStringMultipleKeysArrayTransformer.m

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,24 @@
66
// Copyright (c) 2014 Caleb Davenport. All rights reserved.
77
//
88

9-
#import "CMDKeyValuePairString.h"
109
#import "CMDQueryStringMultipleKeysArrayTransformer.h"
1110
#import "NSString+CMDQueryStringSerialization.h"
1211

1312
@implementation CMDQueryStringMultipleKeysArrayTransformer
1413

1514
#pragma mark - CMDQueryStringArrayTransformer
1615

17-
+ (NSArray *)keyValuePairStringsFromKey:(NSString *)key values:(NSArray *)values {
18-
NSMutableArray *mutablePairs = [[NSMutableArray alloc] init];
16+
+ (NSString *)stringWithKey:(NSString *)key value:(id)value {
17+
NSMutableArray *pairs = [[NSMutableArray alloc] init];
1918

20-
[values enumerateObjectsUsingBlock:^(NSString *value, NSUInteger index, BOOL *stop) {
19+
[value enumerateObjectsUsingBlock:^(NSString *value, NSUInteger index, BOOL *stop) {
2120
NSString *escapedKey = [key cmd_stringByAddingEscapes];
2221
NSString *escapedValue = [value cmd_stringByAddingEscapes];
23-
24-
[mutablePairs addObject:[CMDKeyValuePairString pairStringWithKey:escapedKey value:escapedValue]];
22+
NSString *string = [NSString stringWithFormat:@"%@=%@", escapedKey, escapedValue];
23+
[pairs addObject:string];
2524
}];
2625

27-
return [mutablePairs copy];
26+
return [pairs componentsJoinedByString:@"&"];
2827
}
2928

3029
@end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// CMDQueryStringMultipleBracketedKeysArrayTransformer.h
3+
// CMDQueryStringSerialization
4+
//
5+
// Created by Bryan Irace on 1/26/14.
6+
// Copyright (c) 2014 Caleb Davenport. All rights reserved.
7+
//
8+
9+
#import "CMDQueryStringValueTransformer.h"
10+
11+
@interface CMDQueryStringMultipleKeysWithBracketsArrayTransformer : NSObject <CMDQueryStringValueTransformer>
12+
13+
@end

CMDQueryStringSerialization/CMDQueryStringMultipleBracketedKeysArrayTransformer.m renamed to CMDQueryStringSerialization/CMDQueryStringMultipleKeysWithBracketsArrayTransformer.m

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,24 @@
66
// Copyright (c) 2014 Caleb Davenport. All rights reserved.
77
//
88

9-
#import "CMDKeyValuePairString.h"
10-
#import "CMDQueryStringMultipleBracketedKeysArrayTransformer.h"
9+
#import "CMDQueryStringMultipleKeysWithBracketsArrayTransformer.h"
1110
#import "NSString+CMDQueryStringSerialization.h"
1211

13-
@implementation CMDQueryStringMultipleBracketedKeysArrayTransformer
12+
@implementation CMDQueryStringMultipleKeysWithBracketsArrayTransformer
1413

1514
#pragma mark - CMDQueryStringArrayTransformer
1615

17-
+ (NSArray *)keyValuePairStringsFromKey:(NSString *)key values:(NSArray *)values {
16+
+ (NSString *)stringWithKey:(NSString *)key value:(id)value {
1817
NSMutableArray *mutablePairs = [[NSMutableArray alloc] init];
1918

20-
[values enumerateObjectsUsingBlock:^(NSString *value, NSUInteger index, BOOL *stop) {
19+
[value enumerateObjectsUsingBlock:^(NSString *value, NSUInteger index, BOOL *stop) {
2120
NSString *escapedKey = [[key cmd_stringByAddingEscapes] stringByAppendingString:@"[]"];
2221
NSString *escapedValue = [value cmd_stringByAddingEscapes];
23-
24-
[mutablePairs addObject:[CMDKeyValuePairString pairStringWithKey:escapedKey value:escapedValue]];
22+
NSString *string = [NSString stringWithFormat:@"%@=%@", escapedKey, escapedValue];
23+
[mutablePairs addObject:string];
2524
}];
2625

27-
return [mutablePairs copy];
26+
return [mutablePairs componentsJoinedByString:@"&"];
2827
}
2928

3029
@end

CMDQueryStringSerialization/CMDQueryStringSerialization.m

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ + (NSString *)queryStringWithDictionary:(NSDictionary *)dictionary {
2424

2525

2626
+ (NSString *)queryStringWithDictionary:(NSDictionary *)dictionary options:(CMDQueryStringWritingOptions)options {
27-
CMDQueryStringWriter *writer = [[CMDQueryStringWriter alloc] initWithDictionary:dictionary];
27+
CMDQueryStringWriter *writer = [[CMDQueryStringWriter alloc] initWithDictionary:dictionary options:options];
2828
return [writer stringValue];
2929
}
3030

@@ -94,12 +94,6 @@ + (NSString *)queryStringWithDictionary:(NSDictionary *)dictionary options:(CMDQ
9494
//
9595
//#pragma mark - Serialization
9696
//
97-
//<<<<<<< HEAD
98-
//- (NSString *)cmd_stringByRemovingEscapes {
99-
// return [self stringByRemovingPercentEncoding] ?: @"";
100-
//}
101-
//
102-
//
10397
//- (void)cmd_enumeratePairs:(void (^) (NSString *key, NSString *value))block {
10498
// if ([self length] == 0) {
10599
// return;
@@ -154,31 +148,3 @@ + (NSString *)queryStringWithDictionary:(NSDictionary *)dictionary options:(CMDQ
154148
//}
155149
//
156150
//@end
157-
//
158-
//@implementation NSMutableDictionary (CMDQueryStringSerialization)
159-
//
160-
//- (void)cmd_addObject:(id)object forKey:(NSString *)key {
161-
// id existingObject = self[key];
162-
//
163-
// if (existingObject) {
164-
// if ([existingObject isKindOfClass:[NSArray class]]) {
165-
// self[key] = [existingObject arrayByAddingObject:object];
166-
// }
167-
// else {
168-
// self[key] = @[ existingObject, object ];
169-
// }
170-
// }
171-
// else {
172-
// self[key] = object;
173-
// }
174-
//}
175-
//
176-
//@end
177-
//
178-
//@implementation NSNumber (CMDQueryStringSerialization)
179-
//
180-
//-(NSString *)cmd_stringByAddingEscapes {
181-
// return [[self stringValue] cmd_stringByAddingEscapes];
182-
//}
183-
//
184-
//@end

0 commit comments

Comments
 (0)