-
Notifications
You must be signed in to change notification settings - Fork 40
/
GITActor.m
87 lines (75 loc) · 1.91 KB
/
GITActor.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//
// GITUser.m
// CocoaGit
//
// Created by Geoffrey Garside on 01/07/2008.
// Copyright 2008 ManicPanda.com. All rights reserved.
//
#import "GITActor.h"
/*! \cond
Make properties readwrite so we can use
them within the class.
*/
@interface GITActor ()
@property(readwrite,copy) NSString * name;
@property(readwrite,copy) NSString * email;
@end
/*! \endcond */
@implementation GITActor
@synthesize name;
@synthesize email;
+ (id) actorWithName:(NSString *)theName;
{
return [[[self alloc] initWithName:theName] autorelease];
}
+ (id) actorWithName:(NSString *)theName email:(NSString *)theEmail;
{
return [[[self alloc] initWithName:theName email:theEmail] autorelease];
}
+ (id) actorWithString:(NSString *)raw
{
return [[[self alloc] initWithString:raw] autorelease];
}
- (id)initWithName:(NSString*)theName
{
return [self initWithName:theName email:nil];
}
- (id)initWithName:(NSString*)theName email:(NSString*)theEmail
{
if (self = [super init])
{
self.name = theName;
self.email = theEmail;
}
return self;
}
// This method parses a substring from the author/committer line of a commit object.
// Example:
// "E. L. Gato <elgato@catz.com"
// The name/email are delimited by " <"
- (id) initWithString:(NSString *)raw
{
NSRange delimRange = [raw rangeOfString:@" <"];
NSString *nameChunk = [raw substringToIndex:delimRange.location];
NSString *emailChunk = [raw substringFromIndex:delimRange.location + delimRange.length];
return [self initWithName:nameChunk email:emailChunk];
}
- (void)dealloc
{
self.name = nil;
self.email = nil;
[super dealloc];
}
- (id)copyWithZone:(NSZone*)zone
{
return [[GITActor allocWithZone:zone] initWithName:self.name email:self.email];
}
- (NSString*)description
{
if (self.email)
return [NSString stringWithFormat:@"%@ <%@>",
self.name, self.email];
else
return self.name;
}
@end