GitX v0.4.1
[GitX.git] / PBGitCommit.m
blob2812907e0e5f4ac5ac046211841658526020db21
1 //
2 //  PBGitCommit.m
3 //  GitTest
4 //
5 //  Created by Pieter de Bie on 13-06-08.
6 //  Copyright 2008 __MyCompanyName__. All rights reserved.
7 //
9 #import "PBGitCommit.h"
12 @implementation PBGitCommit
14 @synthesize sha, repository, subject, author, date, parents, sign, lineInfo, refs;
17 - (NSString *) dateString
19         NSDateFormatter* formatter = [[NSDateFormatter alloc] initWithDateFormat:@"%Y-%m-%d %H:%M:%S" allowNaturalLanguage:NO];
20         return [formatter stringFromDate: self.date];
23 - (NSArray*) treeContents
25         return self.tree.children;
28 - initWithRepository:(PBGitRepository*) repo andSha:(NSString*) newSha
30         details = nil;
31         self.repository = repo;
32         self.sha = newSha;
33         return self;
36 - (NSString*) details
38         if (details != nil)
39                 return details;
41         NSFileHandle* handle = [self.repository handleForCommand:[@"show --pretty=raw " stringByAppendingString:self.sha]];
42         details = [[NSString alloc] initWithData:[handle readDataToEndOfFile] encoding: NSUTF8StringEncoding];
44         return details;
47 - (NSString *) patch
49         if (_patch != nil)
50                 return _patch;
52         NSString *p = [repository outputForArguments:[NSArray arrayWithObjects:@"format-patch",  @"-1", @"--stdout", sha, nil]];
53         // Add a GitX identifier to the patch ;)
54         _patch = [[p substringToIndex:[p length] -1] stringByAppendingString:@"+GitX"];
55         return _patch;
58 - (PBGitTree*) tree
60         return [PBGitTree rootForCommit: self];
63 + (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector
65         return NO;
68 + (BOOL)isKeyExcludedFromWebScript:(const char *)name {
69         return NO;
71 @end