5 // Created by Pieter de Bie on 12-09-08.
6 // Copyright 2008 __MyCompanyName__. All rights reserved.
9 #import "PBGitRevSpecifier.h"
12 @implementation PBGitRevSpecifier
14 @synthesize parameters, description;
16 - (id) initWithParameters:(NSArray*) params
23 - (id) initWithRef: (PBGitRef*) ref
25 parameters = [NSArray arrayWithObject: ref.ref];
26 description = ref.shortName;
30 + (PBGitRevSpecifier *)allBranchesRevSpec
32 id revspec = [[PBGitRevSpecifier alloc] initWithParameters:[NSArray arrayWithObject:@"--all"]];
33 [revspec setDescription:@"All branches"];
39 return ([parameters count] == 1 && ![[parameters objectAtIndex:0] hasPrefix:@"-"]);
42 - (NSString*) simpleRef
44 if (![self isSimpleRef])
46 return [parameters objectAtIndex:0];
49 - (NSString*) description
54 return [parameters componentsJoinedByString:@" "];
57 - (BOOL) hasPathLimiter;
59 for (NSString* param in parameters)
60 if ([param isEqualToString:@"--"])
67 for (NSString* param in parameters)
68 if ([param isEqualToString:@"--left-right"])
73 - (BOOL) isEqualTo: (PBGitRevSpecifier*) other
75 if ([self isSimpleRef] ^ [other isSimpleRef])
78 if ([self isSimpleRef])
79 return [[[self parameters] objectAtIndex: 0] isEqualToString: [other.parameters objectAtIndex: 0]];
81 return ([[parameters componentsJoinedByString:@" "] isEqualToString: [other.parameters componentsJoinedByString:@" "]] &&
82 (!description || [description isEqualToString:other.description]));