Skip to content

Commit

Permalink
Moved a method up into a new base class, AKDatabaseLoggingExporter.
Browse files Browse the repository at this point in the history
  • Loading branch information
aglee committed Jun 13, 2016
1 parent 3984d7e commit e9e2407
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 23 deletions.
10 changes: 8 additions & 2 deletions AppKiDo.xcodeproj/project.pbxproj
Expand Up @@ -216,6 +216,7 @@
73DFDDEB1D0E4F2F002D98FE /* AKFrameworkClassesTopic.m in Sources */ = {isa = PBXBuildFile; fileRef = 73DFDDEA1D0E4F2F002D98FE /* AKFrameworkClassesTopic.m */; };
73DFDDED1D0EA637002D98FE /* DevIntro.md in Sources */ = {isa = PBXBuildFile; fileRef = 73DFDDEC1D0EA636002D98FE /* DevIntro.md */; };
73DFDDF01D0F3EFC002D98FE /* AKDatabaseFlatFormatExporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 73DFDDEF1D0F3EFC002D98FE /* AKDatabaseFlatFormatExporter.m */; };
73DFDDF31D0F41AE002D98FE /* AKDatabaseLoggingExporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 73DFDDF21D0F41AE002D98FE /* AKDatabaseLoggingExporter.m */; };
73EC0F751D00FD110038FC48 /* AKHeaderScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 73EC0F741D00FD110038FC48 /* AKHeaderScanner.m */; };
73EC0F7B1D0118870038FC48 /* AKClassDeclarationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 73EC0F7A1D0118870038FC48 /* AKClassDeclarationInfo.m */; };
73EC0F7F1D0233FD0038FC48 /* AKInstalledSDK.m in Sources */ = {isa = PBXBuildFile; fileRef = 73EC0F7E1D0233FD0038FC48 /* AKInstalledSDK.m */; };
Expand Down Expand Up @@ -588,6 +589,8 @@
73DFDDEC1D0EA636002D98FE /* DevIntro.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = DevIntro.md; sourceTree = "<group>"; };
73DFDDEE1D0F3EFC002D98FE /* AKDatabaseFlatFormatExporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AKDatabaseFlatFormatExporter.h; sourceTree = "<group>"; };
73DFDDEF1D0F3EFC002D98FE /* AKDatabaseFlatFormatExporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AKDatabaseFlatFormatExporter.m; sourceTree = "<group>"; };
73DFDDF11D0F41AE002D98FE /* AKDatabaseLoggingExporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AKDatabaseLoggingExporter.h; sourceTree = "<group>"; };
73DFDDF21D0F41AE002D98FE /* AKDatabaseLoggingExporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AKDatabaseLoggingExporter.m; sourceTree = "<group>"; };
73E988D31CF4E49F00D39623 /* AKDatabase+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AKDatabase+Private.h"; sourceTree = "<group>"; };
73EC0F731D00FD110038FC48 /* AKHeaderScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AKHeaderScanner.h; sourceTree = "<group>"; };
73EC0F741D00FD110038FC48 /* AKHeaderScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AKHeaderScanner.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1306,12 +1309,14 @@
739328E91D0D675C0032BDC3 /* Export */ = {
isa = PBXGroup;
children = (
73664D4F1CF2BE9D0094F405 /* AKDatabaseXMLExporter.h */,
73664D501CF2BE9D0094F405 /* AKDatabaseXMLExporter.m */,
73DFDDF11D0F41AE002D98FE /* AKDatabaseLoggingExporter.h */,
73DFDDF21D0F41AE002D98FE /* AKDatabaseLoggingExporter.m */,
739328E61D0CD6730032BDC3 /* AKDatabaseOutlineExporter.h */,
739328E71D0CD6730032BDC3 /* AKDatabaseOutlineExporter.m */,
73DFDDEE1D0F3EFC002D98FE /* AKDatabaseFlatFormatExporter.h */,
73DFDDEF1D0F3EFC002D98FE /* AKDatabaseFlatFormatExporter.m */,
73664D4F1CF2BE9D0094F405 /* AKDatabaseXMLExporter.h */,
73664D501CF2BE9D0094F405 /* AKDatabaseXMLExporter.m */,
);
path = Export;
sourceTree = "<group>";
Expand Down Expand Up @@ -1559,6 +1564,7 @@
73664E7C1CF2BE9E0094F405 /* DSADistributionVersion.m in Sources */,
73664E801CF2BE9E0094F405 /* FilePath.m in Sources */,
73664EC01CF2BE9E0094F405 /* DIGSFindBuffer.m in Sources */,
73DFDDF31D0F41AE002D98FE /* AKDatabaseLoggingExporter.m in Sources */,
73664E5A1CF2BE9E0094F405 /* AKDevToolsPanelController.m in Sources */,
73664EC61CF2BE9E0094F405 /* DIGSTextView.m in Sources */,
73664ED11CF2BE9E0094F405 /* AKSavedWindowState.m in Sources */,
Expand Down
17 changes: 17 additions & 0 deletions AppKiDo/Database/Export/AKDatabaseLoggingExporter.h
@@ -0,0 +1,17 @@
//
// AKDatabaseLoggingExporter.h
// AppKiDo
//
// Created by Andy Lee on 6/13/16.
// Copyright © 2016 Andy Lee. All rights reserved.
//

#import <Foundation/Foundation.h>

@class AKDatabase;

@interface AKDatabaseLoggingExporter : NSObject

- (void)printMetadataForDatabase:(AKDatabase *)database;

@end
32 changes: 32 additions & 0 deletions AppKiDo/Database/Export/AKDatabaseLoggingExporter.m
@@ -0,0 +1,32 @@
//
// AKDatabaseLoggingExporter.m
// AppKiDo
//
// Created by Andy Lee on 6/13/16.
// Copyright © 2016 Andy Lee. All rights reserved.
//

#import "AKDatabaseLoggingExporter.h"
#import "AKDatabase.h"
#import "AKInstalledSDK.h"
#import "DIGSLog.h"
#import "DocSetIndex.h"

@implementation AKDatabaseLoggingExporter

- (void)printMetadataForDatabase:(AKDatabase *)database
{
NSString *dateString = [NSDateFormatter localizedStringFromDate:[NSDate date]
dateStyle:NSDateFormatterFullStyle
timeStyle:NSDateFormatterMediumStyle];
DIGSPrintTabIndented(0, @"%@", dateString);
DIGSPrintTabIndented(0, @"Docset for platform %@, version %@",
database.docSetIndex.platformInternalName,
database.docSetIndex.platformVersion);
DIGSPrintTabIndented(0, (@"SDK for platform %@, version %@"
@"\n"),
database.referenceSDK.platformInternalName,
database.referenceSDK.sdkVersion);
}

@end
4 changes: 2 additions & 2 deletions AppKiDo/Database/Export/AKDatabaseOutlineExporter.h
Expand Up @@ -6,15 +6,15 @@
// Copyright © 2016 Andy Lee. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "AKDatabaseLoggingExporter.h"

@class AKDatabase;

/*!
* Prints a dump of the database that can be used for regression testing. Can
* also be used to see what's changed between releases of the docs or the SDK.
*/
@interface AKDatabaseOutlineExporter : NSObject
@interface AKDatabaseOutlineExporter : AKDatabaseLoggingExporter

- (void)printOutlineOfFrameworksInDatabase:(AKDatabase *)database;
- (void)printOutlineOfProtocolsInDatabase:(AKDatabase *)database;
Expand Down
23 changes: 4 additions & 19 deletions AppKiDo/Database/Export/AKDatabaseOutlineExporter.m
Expand Up @@ -29,47 +29,32 @@ @implementation AKDatabaseOutlineExporter

- (void)printOutlineOfFrameworksInDatabase:(AKDatabase *)database
{
[self _printMetadataForDatabase:database];
[self printMetadataForDatabase:database];
[self _printProtocolsInDatabase:database indent:0];
}

- (void)printOutlineOfProtocolsInDatabase:(AKDatabase *)database
{
[self _printMetadataForDatabase:database];
[self printMetadataForDatabase:database];
[self _printProtocolsInDatabase:database indent:0];
}

- (void)printOutlineOfClassesInDatabase:(AKDatabase *)database
{
[self _printMetadataForDatabase:database];
[self printMetadataForDatabase:database];
[self _printClassesInDatabase:database indent:0];
}

- (void)printFullOutlineOfDatabase:(AKDatabase *)database
{
[self _printMetadataForDatabase:database];
[self printMetadataForDatabase:database];
[self _printFrameworksInDatabase:database indent:0];
[self _printProtocolsInDatabase:database indent:0];
[self _printClassesInDatabase:database indent:0];
}

#pragma mark - Private methods -- printing high-level outlines

- (void)_printMetadataForDatabase:(AKDatabase *)database
{
NSString *dateString = [NSDateFormatter localizedStringFromDate:[NSDate date]
dateStyle:NSDateFormatterFullStyle
timeStyle:NSDateFormatterMediumStyle];
DIGSPrintTabIndented(0, @"%@", dateString);
DIGSPrintTabIndented(0, @"Docset for platform %@, version %@",
database.docSetIndex.platformInternalName,
database.docSetIndex.platformVersion);
DIGSPrintTabIndented(0, (@"SDK for platform %@, version %@"
@"\n"),
database.referenceSDK.platformInternalName,
database.referenceSDK.sdkVersion);
}

- (void)_printFrameworksInDatabase:(AKDatabase *)database indent:(NSInteger)indentLevel
{
DIGSPrintTabIndented(indentLevel, @"%@:", @"[Frameworks]");
Expand Down

0 comments on commit e9e2407

Please sign in to comment.