Skip to content

Commit 18d9956

Browse files
committed
BuildSettingExtractor now not dependent on NSUserDefaults configuration
Default shared/project/separator providers exposed for clients to manage NSUserDefaults should they wish.
1 parent ff3867f commit 18d9956

File tree

3 files changed

+31
-10
lines changed

3 files changed

+31
-10
lines changed

BuildSettingExtractor/AppDelegate.m

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ - (IBAction)handleDroppedFile:(DragFileView *)sender {
6060
// Perform the extraction in the background.
6161
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
6262
BuildSettingExtractor *buildSettingExtractor = [[BuildSettingExtractor alloc] init];
63+
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
64+
buildSettingExtractor.sharedConfigName = [defaults stringForKey:TPSOutputFileNameShared];
65+
buildSettingExtractor.projectConfigName = [defaults stringForKey:TPSOutputFileNameProject];
66+
buildSettingExtractor.nameSeparator = [defaults stringForKey:TPSOutputFileNameSeparator];
6367
buildSettingExtractor.includeBuildSettingInfoComments = [[NSUserDefaults standardUserDefaults] boolForKey:TPSIncludeBuildSettingInfoComments];
6468

6569
[buildSettingExtractor extractBuildSettingsFromProject:fileURL toDestinationFolder:destinationURL];
@@ -148,9 +152,9 @@ - (void)applicationDidFinishLaunching:(NSNotification *)notification {
148152
NSDictionary *defaults = @{
149153
TPSOpenDirectoryInFinder:@(YES),
150154
TPSIncludeBuildSettingInfoComments:@(YES),
151-
TPSOutputFileNameProject:@"Project",
152-
TPSOutputFileNameShared:@"Shared",
153-
TPSOutputFileNameSeparator:@"-",
155+
TPSOutputFileNameShared:BuildSettingExtractor.sharedConfigNameDefault,
156+
TPSOutputFileNameProject:BuildSettingExtractor.projectConfigNameDefault,
157+
TPSOutputFileNameSeparator:BuildSettingExtractor.nameSeparatorDefault,
154158
};
155159
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
156160
}

BuildSettingExtractor/BuildSettingExtractor.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,20 @@
1111

1212
@interface BuildSettingExtractor : NSObject
1313

14-
// The name that will be used to name common / shared config files. "Shared" is the default.
14+
// The name that will be used to name common / shared config files.
1515
@property (copy) NSString *sharedConfigName;
16+
// "Shared" is the default.
17+
+ (NSString *)sharedConfigNameDefault;
1618

17-
// The name that will be used to name the project configuration. Default is "Project".
19+
// The name that will be used to name the project configuration.
1820
@property (copy) NSString *projectConfigName;
21+
// "Project" is the default.
22+
+ (NSString *)projectConfigNameDefault;
1923

20-
// The string that will separate filename components. Default is "-" hyphen-case.
24+
// The string that will separate filename components.
2125
@property (copy) NSString *nameSeparator;
26+
// "-" hyphen-case is the default.
27+
+ (NSString *)nameSeparatorDefault;
2228

2329
// Should each build setting be commented with title and description, if available.
2430
@property (assign) BOOL includeBuildSettingInfoComments;

BuildSettingExtractor/BuildSettingExtractor.m

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,24 @@ @interface BuildSettingExtractor ()
2121

2222
@implementation BuildSettingExtractor
2323

24+
+ (NSString *)sharedConfigNameDefault {
25+
return @"Shared";
26+
}
27+
28+
+ (NSString *)projectConfigNameDefault {
29+
return @"Project";
30+
}
31+
32+
+ (NSString *)nameSeparatorDefault {
33+
return @"-";
34+
}
35+
2436
- (instancetype)init {
2537
self = [super init];
2638
if (self) {
27-
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
28-
_sharedConfigName = [defaults stringForKey:TPSOutputFileNameShared];
29-
_projectConfigName = [defaults stringForKey:TPSOutputFileNameProject];
30-
_nameSeparator = [defaults stringForKey:TPSOutputFileNameSeparator];
39+
_sharedConfigName = BuildSettingExtractor.sharedConfigNameDefault;
40+
_projectConfigName = BuildSettingExtractor.projectConfigNameDefault;
41+
_nameSeparator = BuildSettingExtractor.nameSeparatorDefault;
3142
_buildSettingsByTarget = [[NSMutableDictionary alloc] init];
3243
_buildSettingInfoSource = [[BuildSettingInfoSource alloc] init];
3344
}

0 commit comments

Comments
 (0)