mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
95a9cc81fc
This indicates the directory in which the Revparameters should be run, useful when the parameters are requested from the CLI
104 lines
2.3 KiB
Objective-C
104 lines
2.3 KiB
Objective-C
//
|
|
// PBGitRevSpecifier.m
|
|
// GitX
|
|
//
|
|
// Created by Pieter de Bie on 12-09-08.
|
|
// Copyright 2008 __MyCompanyName__. All rights reserved.
|
|
//
|
|
|
|
#import "PBGitRevSpecifier.h"
|
|
|
|
|
|
@implementation PBGitRevSpecifier
|
|
|
|
@synthesize parameters, description, workingDirectory;
|
|
|
|
- (id) initWithParameters:(NSArray*) params
|
|
{
|
|
parameters = params;
|
|
description = nil;
|
|
return self;
|
|
}
|
|
|
|
- (id) initWithRef: (PBGitRef*) ref
|
|
{
|
|
parameters = [NSArray arrayWithObject: ref.ref];
|
|
description = ref.shortName;
|
|
return self;
|
|
}
|
|
|
|
- (id) initWithCoder:(NSCoder *)coder
|
|
{
|
|
parameters = [coder decodeObjectForKey:@"Parameters"];
|
|
description = [coder decodeObjectForKey:@"Description"];
|
|
return self;
|
|
}
|
|
|
|
+ (PBGitRevSpecifier *)allBranchesRevSpec
|
|
{
|
|
id revspec = [[PBGitRevSpecifier alloc] initWithParameters:[NSArray arrayWithObject:@"--all"]];
|
|
[revspec setDescription:@"All branches"];
|
|
return revspec;
|
|
}
|
|
|
|
+ (PBGitRevSpecifier *)localBranchesRevSpec
|
|
{
|
|
id revspec = [[PBGitRevSpecifier alloc] initWithParameters:[NSArray arrayWithObject:@"--branches"]];
|
|
[revspec setDescription:@"Local branches"];
|
|
return revspec;
|
|
}
|
|
- (BOOL) isSimpleRef
|
|
{
|
|
return ([parameters count] == 1 && ![[parameters objectAtIndex:0] hasPrefix:@"-"]);
|
|
}
|
|
|
|
- (NSString*) simpleRef
|
|
{
|
|
if (![self isSimpleRef])
|
|
return nil;
|
|
return [parameters objectAtIndex:0];
|
|
}
|
|
|
|
- (NSString*) description
|
|
{
|
|
if (description)
|
|
return description;
|
|
|
|
return [parameters componentsJoinedByString:@" "];
|
|
}
|
|
|
|
- (BOOL) hasPathLimiter;
|
|
{
|
|
for (NSString* param in parameters)
|
|
if ([param isEqualToString:@"--"])
|
|
return YES;
|
|
return NO;
|
|
}
|
|
|
|
- (BOOL) hasLeftRight
|
|
{
|
|
for (NSString* param in parameters)
|
|
if ([param isEqualToString:@"--left-right"])
|
|
return YES;
|
|
return NO;
|
|
}
|
|
|
|
- (BOOL) isEqualTo: (PBGitRevSpecifier*) other
|
|
{
|
|
if ([self isSimpleRef] ^ [other isSimpleRef])
|
|
return NO;
|
|
|
|
if ([self isSimpleRef])
|
|
return [[[self parameters] objectAtIndex: 0] isEqualToString: [other.parameters objectAtIndex: 0]];
|
|
|
|
return ([[parameters componentsJoinedByString:@" "] isEqualToString: [other.parameters componentsJoinedByString:@" "]] &&
|
|
(!description || [description isEqualToString:other.description]));
|
|
}
|
|
|
|
- (void) encodeWithCoder:(NSCoder *)coder
|
|
{
|
|
[coder encodeObject:description forKey:@"Description"];
|
|
[coder encodeObject:parameters forKey:@"Parameters"];
|
|
}
|
|
@end
|