mirror of
https://github.com/zhigang1992/RestKit.git
synced 2026-05-27 17:49:08 +08:00
Overhaul RKParser API's for clarity and simplicity:
* Adds support for NSJSONSerialization. closes #476 * Renames RKParser to RKSerialization * Renames RKParserRegistry to RKMIMETypeSerialization * Rework serialization implementations API's to use class methods * Fold together string and regular expression matching for MIME Type registrations * Port serialization implementations to working off of NSData instead of NSString. refs #762 * Migrate JSONKit to being an optional component. See https://github.com/RestKit/RKJSONKitSerialization
This commit is contained in:
@@ -98,7 +98,7 @@
|
||||
[mapping mapAttributes:@"boolString", nil];
|
||||
TestMappable *object = [[[TestMappable alloc] init] autorelease];
|
||||
|
||||
id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id<RKSerialization> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id data = [parser objectFromString:@"{\"boolString\":true}" error:nil];
|
||||
|
||||
RKMappingOperation *operation = [[RKMappingOperation alloc] initWithSourceObject:data destinationObject:object mapping:mapping];
|
||||
@@ -114,7 +114,7 @@
|
||||
[mapping mapAttributes:@"boolNumber", nil];
|
||||
TestMappable *object = [[[TestMappable alloc] init] autorelease];
|
||||
|
||||
id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id<RKSerialization> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id data = [parser objectFromString:@"{\"boolNumber\":true}" error:nil];
|
||||
|
||||
RKMappingOperation *operation = [[RKMappingOperation alloc] initWithSourceObject:data destinationObject:object mapping:mapping];
|
||||
@@ -130,7 +130,7 @@
|
||||
[mapping mapAttributes:@"boolNumber", nil];
|
||||
TestMappable *object = [[[TestMappable alloc] init] autorelease];
|
||||
|
||||
id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id<RKSerialization> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id data = [parser objectFromString:@"{\"boolNumber\":false}" error:nil];
|
||||
|
||||
RKMappingOperation *operation = [[RKMappingOperation alloc] initWithSourceObject:data destinationObject:object mapping:mapping];
|
||||
@@ -146,7 +146,7 @@
|
||||
[mapping mapKeyPath:@"number" toAttribute:@"boolString"];
|
||||
TestMappable *object = [[[TestMappable alloc] init] autorelease];
|
||||
|
||||
id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id<RKSerialization> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id data = [parser objectFromString:@"{\"number\":123}" error:nil];
|
||||
|
||||
RKMappingOperation *operation = [[RKMappingOperation alloc] initWithSourceObject:data destinationObject:object mapping:mapping];
|
||||
@@ -162,7 +162,7 @@
|
||||
[mapping mapKeyPath:@"numbers" toAttribute:@"orderedSet"];
|
||||
TestMappable *object = [[[TestMappable alloc] init] autorelease];
|
||||
|
||||
id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id<RKSerialization> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:@"application/json"];
|
||||
id data = [parser objectFromString:@"{\"numbers\":[1, 2, 3]}" error:nil];
|
||||
|
||||
RKMappingOperation *operation = [[RKMappingOperation alloc] initWithSourceObject:data destinationObject:object mapping:mapping];
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
{
|
||||
RKParserRegistry *registry = [[RKParserRegistry new] autorelease];
|
||||
[registry setParserClass:[RKJSONParserJSONKit class] forMIMEType:RKMIMETypeJSON];
|
||||
id<RKParser> parser = [registry parserForMIMEType:RKMIMETypeJSON];
|
||||
id<RKSerialization> parser = [registry parserForMIMEType:RKMIMETypeJSON];
|
||||
assertThat(parser, is(instanceOf([RKJSONParserJSONKit class])));
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
{
|
||||
RKParserRegistry *registry = [[RKParserRegistry new] autorelease];
|
||||
[registry autoconfigure];
|
||||
id<RKParser> parser = [registry parserForMIMEType:RKMIMETypeJSON];
|
||||
id<RKSerialization> parser = [registry parserForMIMEType:RKMIMETypeJSON];
|
||||
assertThat(parser, is(instanceOf([RKJSONParserJSONKit class])));
|
||||
parser = [registry parserForMIMEType:RKMIMETypeXML];
|
||||
assertThat(parser, is(instanceOf([RKXMLParserXMLReader class])));
|
||||
@@ -60,7 +60,7 @@
|
||||
{
|
||||
RKParserRegistry *registry = [[RKParserRegistry new] autorelease];
|
||||
[registry setParserClass:[RKJSONParserJSONKit class] forMIMEType:RKMIMETypeJSON];
|
||||
id<RKParser> parser = [registry parserForMIMEType:RKMIMETypeJSON];
|
||||
id<RKSerialization> parser = [registry parserForMIMEType:RKMIMETypeJSON];
|
||||
assertThat(parser, is(instanceOf([RKJSONParserJSONKit class])));
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
NSError *error = nil;
|
||||
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"application/xml\\+\\w+" options:0 error:&error];
|
||||
[registry setParserClass:[RKJSONParserJSONKit class] forMIMETypeRegularExpression:regex];
|
||||
id<RKParser> parser = [registry parserForMIMEType:@"application/xml+whatever"];
|
||||
id<RKSerialization> parser = [registry parserForMIMEType:@"application/xml+whatever"];
|
||||
assertThat(parser, is(instanceOf([RKJSONParserJSONKit class])));
|
||||
}
|
||||
|
||||
@@ -83,11 +83,11 @@
|
||||
[registry setParserClass:[RKXMLParserXMLReader class] forMIMEType:@"application/xml+whatever"];
|
||||
|
||||
// Exact match
|
||||
id<RKParser> exactParser = [registry parserForMIMEType:@"application/xml+whatever"];
|
||||
id<RKSerialization> exactParser = [registry parserForMIMEType:@"application/xml+whatever"];
|
||||
assertThat(exactParser, is(instanceOf([RKXMLParserXMLReader class])));
|
||||
|
||||
// Fallback to regex
|
||||
id<RKParser> regexParser = [registry parserForMIMEType:@"application/xml+different"];
|
||||
id<RKSerialization> regexParser = [registry parserForMIMEType:@"application/xml+different"];
|
||||
assertThat(regexParser, is(instanceOf([RKJSONParserJSONKit class])));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user