forked from dennisreimann/ioctocat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GHRepositories.m
46 lines (37 loc) · 1.33 KB
/
GHRepositories.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#import "GHRepositories.h"
#import "GHRepository.h"
#import "GHUser.h"
#import "iOctocat.h"
#import "ASIFormDataRequest.h"
@implementation GHRepositories
@synthesize repositories;
+ (id)repositoriesWithURL:(NSURL *)theURL {
return [[[[self class] alloc] initWithURL:theURL] autorelease];
}
- (id)initWithURL:(NSURL *)theURL {
[super init];
self.resourceURL = theURL;
self.repositories = [NSMutableArray array];
return self;
}
- (void)dealloc {
[repositories release], repositories = nil;
[super dealloc];
}
- (NSString *)description {
return [NSString stringWithFormat:@"<GHRepositories resourceURL:'%@'>", resourceURL];
}
- (void)setValuesFromDict:(NSDictionary *)theDict {
NSMutableArray *resources = [NSMutableArray array];
NSArray *reposArray = [theDict isKindOfClass:[NSArray class]] ? theDict : [theDict objectForKey:@"repositories"];
for (NSDictionary *dict in reposArray) {
id own = [dict objectForKey:@"owner"];
NSString *owner = [own isKindOfClass:[NSDictionary class]] ? [own objectForKey:@"login"] : own;
GHRepository *resource = [GHRepository repositoryWithOwner:owner andName:[dict objectForKey:@"name"]];
[resource setValuesFromDict:dict];
[resources addObject:resource];
}
[resources sortUsingSelector:@selector(compareByName:)];
self.repositories = resources;
}
@end