Skip to content

Commit

Permalink
Implement an SVGKSource subclass for data.
Browse files Browse the repository at this point in the history
  • Loading branch information
MaddTheSane committed Jun 24, 2013
1 parent 1b5527a commit b4724c2
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 6 deletions.
8 changes: 8 additions & 0 deletions SVGKit-OSX.xcodeproj/project.pbxproj
Expand Up @@ -226,6 +226,8 @@
55B4D7A9173EC87C00D2C676 /* SVGKLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5540E73A17387F2B004029EF /* SVGKLayer.m */; };
55B4D7AA173ECEA200D2C676 /* CALayerExporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5540E71C17387F2B004029EF /* CALayerExporter.m */; };
55B4D7AB173ECEC200D2C676 /* CALayerExporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5540E71B17387F2B004029EF /* CALayerExporter.h */; settings = {ATTRIBUTES = (Public, ); }; };
55D274791779029C0068FD7C /* SVGKSourceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 55D274771779029C0068FD7C /* SVGKSourceData.h */; };
55D2747A1779029C0068FD7C /* SVGKSourceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 55D274781779029C0068FD7C /* SVGKSourceData.m */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand Down Expand Up @@ -456,6 +458,8 @@
55B4D7A0173EC58700D2C676 /* SVGKImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = SVGKImageView.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
55B4D7A1173EC58700D2C676 /* SVGKLayeredImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKLayeredImageView.h; sourceTree = "<group>"; };
55B4D7A2173EC58700D2C676 /* SVGKLayeredImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = SVGKLayeredImageView.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
55D274771779029C0068FD7C /* SVGKSourceData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKSourceData.h; sourceTree = "<group>"; };
55D274781779029C0068FD7C /* SVGKSourceData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGKSourceData.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand All @@ -478,6 +482,8 @@
55247B1D173DB63B00531BBC /* SVGKSourceLocalFile.m */,
55247B20173DB63B00531BBC /* SVGKSourceURL.h */,
55247B21173DB63B00531BBC /* SVGKSourceURL.m */,
55D274771779029C0068FD7C /* SVGKSourceData.h */,
55D274781779029C0068FD7C /* SVGKSourceData.m */,
);
name = Sources;
path = Source/Sources;
Expand Down Expand Up @@ -1010,6 +1016,7 @@
55A5AD6C175FEBF4009F2FDD /* ConverterSVGToCALayer.h in Headers */,
55A5AD8A1760037A009F2FDD /* CALayer+RecursiveClone.h in Headers */,
55801825176E4D7800F64989 /* BlankSVG.h in Headers */,
55D274791779029C0068FD7C /* SVGKSourceData.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -1171,6 +1178,7 @@
55A5AD69175FEBB0009F2FDD /* DispatchQueueLogFormatter.m in Sources */,
55A5AD8B1760037A009F2FDD /* CALayer+RecursiveClone.m in Sources */,
55801826176E4D7800F64989 /* BlankSVG.m in Sources */,
55D2747A1779029C0068FD7C /* SVGKSourceData.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
8 changes: 8 additions & 0 deletions SVGKit-iOS.xcodeproj/project.pbxproj
Expand Up @@ -32,6 +32,8 @@
55A5AD47175FEAE4009F2FDD /* SVGKSourceURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 55A5AD43175FEAE4009F2FDD /* SVGKSourceURL.m */; };
55B4D79B173EC40900D2C676 /* NSCharacterSet+SVGKExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 55B4D799173EC40900D2C676 /* NSCharacterSet+SVGKExtensions.h */; };
55B4D79C173EC40900D2C676 /* NSCharacterSet+SVGKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 55B4D79A173EC40900D2C676 /* NSCharacterSet+SVGKExtensions.m */; };
55D2747E177903820068FD7C /* SVGKSourceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 55D2747C177903820068FD7C /* SVGKSourceData.h */; };
55D2747F177903820068FD7C /* SVGKSourceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 55D2747D177903820068FD7C /* SVGKSourceData.m */; };
661ADBF216CC2FBE006F4BC3 /* SVGTextPositioningElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 661ADBF016CC2FBE006F4BC3 /* SVGTextPositioningElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
661ADBF316CC2FBE006F4BC3 /* SVGTextPositioningElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 661ADBF116CC2FBE006F4BC3 /* SVGTextPositioningElement.m */; };
661ADBF716CC2FCA006F4BC3 /* SVGTextContentElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 661ADBF516CC2FCA006F4BC3 /* SVGTextContentElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -265,6 +267,8 @@
55A5AD43175FEAE4009F2FDD /* SVGKSourceURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGKSourceURL.m; sourceTree = "<group>"; };
55B4D799173EC40900D2C676 /* NSCharacterSet+SVGKExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCharacterSet+SVGKExtensions.h"; sourceTree = "<group>"; };
55B4D79A173EC40900D2C676 /* NSCharacterSet+SVGKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSCharacterSet+SVGKExtensions.m"; sourceTree = "<group>"; };
55D2747C177903820068FD7C /* SVGKSourceData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKSourceData.h; sourceTree = "<group>"; };
55D2747D177903820068FD7C /* SVGKSourceData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGKSourceData.m; sourceTree = "<group>"; };
661ADBF016CC2FBE006F4BC3 /* SVGTextPositioningElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextPositioningElement.h; sourceTree = "<group>"; };
661ADBF116CC2FBE006F4BC3 /* SVGTextPositioningElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGTextPositioningElement.m; sourceTree = "<group>"; };
661ADBF516CC2FCA006F4BC3 /* SVGTextContentElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextContentElement.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -524,6 +528,8 @@
55A5AD41175FEAE4009F2FDD /* SVGKSourceLocalFile.m */,
55A5AD42175FEAE4009F2FDD /* SVGKSourceURL.h */,
55A5AD43175FEAE4009F2FDD /* SVGKSourceURL.m */,
55D2747C177903820068FD7C /* SVGKSourceData.h */,
55D2747D177903820068FD7C /* SVGKSourceData.m */,
);
path = Sources;
sourceTree = "<group>";
Expand Down Expand Up @@ -994,6 +1000,7 @@
55A5AD44175FEAE4009F2FDD /* SVGKSourceLocalFile.h in Headers */,
55A5AD46175FEAE4009F2FDD /* SVGKSourceURL.h in Headers */,
55801829176E4F9300F64989 /* BlankSVG.h in Headers */,
55D2747E177903820068FD7C /* SVGKSourceData.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -1162,6 +1169,7 @@
55A5AD45175FEAE4009F2FDD /* SVGKSourceLocalFile.m in Sources */,
55A5AD47175FEAE4009F2FDD /* SVGKSourceURL.m in Sources */,
5580182A176E4F9300F64989 /* BlankSVG.m in Sources */,
55D2747F177903820068FD7C /* SVGKSourceData.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
8 changes: 2 additions & 6 deletions Source/SVGKSource.m
@@ -1,7 +1,7 @@
#import "SVGKSource.h"
#import "SVGKSourceLocalFile.h"
#import "SVGKSourceURL.h"

#import "SVGKSourceData.h"

@implementation SVGKSource

Expand All @@ -28,11 +28,7 @@ + (SVGKSource*)sourceFromURL:(NSURL*)u
}

+ (SVGKSource*)sourceFromData:(NSData*)data {
NSInputStream* stream = [NSInputStream inputStreamWithData:data];
[stream open];

SVGKSource* s = [[[SVGKSource alloc] initWithInputSteam:stream] autorelease];
return s;
return [SVGKSourceData sourceFromData:data];
}

+ (SVGKSource*)sourceFromContentsOfString:(NSString*)rawString {
Expand Down
17 changes: 17 additions & 0 deletions Source/Sources/SVGKSourceData.h
@@ -0,0 +1,17 @@
//
// SVGKSourceData.h
// SVGKit-OSX
//
// Created by C.W. Betts on 6/24/13.
// Copyright (c) 2013 C.W. Betts. All rights reserved.
//

#import "SVGKSource.h"

@interface SVGKSourceData : SVGKSource

@property (readwrite, retain, nonatomic) NSData *data;

+ (SVGKSource*)sourceFromData:(NSData*)data;

@end
32 changes: 32 additions & 0 deletions Source/Sources/SVGKSourceData.m
@@ -0,0 +1,32 @@
//
// SVGKSourceData.m
// SVGKit-OSX
//
// Created by C.W. Betts on 6/24/13.
// Copyright (c) 2013 C.W. Betts. All rights reserved.
//

#import "SVGKSourceData.h"

@implementation SVGKSourceData

+ (SVGKSource*)sourceFromData:(NSData*)data {
if ([data isKindOfClass:[NSMutableData class]]) {
data = [NSData dataWithData:data];
}
NSInputStream* stream = [NSInputStream inputStreamWithData:data];
[stream open];

SVGKSourceData* s = [[[SVGKSourceData alloc] initWithInputSteam:stream] autorelease];
s.data = data;
return s;
}

- (void)dealloc
{
self.data = nil;

[super dealloc];
}

@end

0 comments on commit b4724c2

Please sign in to comment.