From 68cb95faa46ccb28b05af793c5c59de728f7752f Mon Sep 17 00:00:00 2001 From: Jake Marsh Date: Wed, 16 Sep 2015 01:10:45 -0700 Subject: [PATCH 1/2] Save someone's sanity at 1:10 AM. Namespace your categories please. :kissing_heart: --- UAGithubEngine.xcodeproj/project.pbxproj | 16 ++-- .../UserInterfaceState.xcuserstate | Bin 0 -> 13744 bytes .../xcschemes/UAGithubEngine.xcscheme | 80 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 22 +++++ ...Base64.h => NSData+UAGithubEngineBase64.h} | 10 +-- ...Base64.m => NSData+UAGithubEngineBase64.m} | 40 ++++----- UAGithubEngine/UAGithubEngine.m | 4 +- 7 files changed, 137 insertions(+), 35 deletions(-) create mode 100644 UAGithubEngine.xcodeproj/project.xcworkspace/xcuserdata/jakemarsh.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/UAGithubEngine.xcscheme create mode 100644 UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/xcschememanagement.plist rename UAGithubEngine/{NSData+Base64.h => NSData+UAGithubEngineBase64.h} (76%) rename UAGithubEngine/{NSData+Base64.m => NSData+UAGithubEngineBase64.m} (84%) diff --git a/UAGithubEngine.xcodeproj/project.pbxproj b/UAGithubEngine.xcodeproj/project.pbxproj index 48517b4..feb93db 100644 --- a/UAGithubEngine.xcodeproj/project.pbxproj +++ b/UAGithubEngine.xcodeproj/project.pbxproj @@ -11,8 +11,8 @@ CC52FFA615378566005A767A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = CC52FFA415378566005A767A /* InfoPlist.strings */; }; CC52FFC3153785F3005A767A /* NSArray+Utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = CC52FFAE153785F3005A767A /* NSArray+Utilities.h */; }; CC52FFC4153785F3005A767A /* NSArray+Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CC52FFAF153785F3005A767A /* NSArray+Utilities.m */; }; - CC52FFC5153785F3005A767A /* NSData+Base64.h in Headers */ = {isa = PBXBuildFile; fileRef = CC52FFB0153785F3005A767A /* NSData+Base64.h */; }; - CC52FFC6153785F3005A767A /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = CC52FFB1153785F3005A767A /* NSData+Base64.m */; }; + CC52FFC5153785F3005A767A /* NSData+UAGithubEngineBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = CC52FFB0153785F3005A767A /* NSData+UAGithubEngineBase64.h */; }; + CC52FFC6153785F3005A767A /* NSData+UAGithubEngineBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = CC52FFB1153785F3005A767A /* NSData+UAGithubEngineBase64.m */; }; CC52FFC7153785F3005A767A /* NSInvocation+Blocks.h in Headers */ = {isa = PBXBuildFile; fileRef = CC52FFB2153785F3005A767A /* NSInvocation+Blocks.h */; }; CC52FFC8153785F3005A767A /* NSInvocation+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = CC52FFB3153785F3005A767A /* NSInvocation+Blocks.m */; }; CC52FFC9153785F3005A767A /* NSString+UAGithubEngineUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = CC52FFB4153785F3005A767A /* NSString+UAGithubEngineUtilities.h */; }; @@ -46,8 +46,8 @@ CC52FFA715378566005A767A /* UAGithubEngine-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UAGithubEngine-Prefix.pch"; sourceTree = ""; }; CC52FFAE153785F3005A767A /* NSArray+Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Utilities.h"; sourceTree = ""; }; CC52FFAF153785F3005A767A /* NSArray+Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Utilities.m"; sourceTree = ""; }; - CC52FFB0153785F3005A767A /* NSData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Base64.h"; sourceTree = ""; }; - CC52FFB1153785F3005A767A /* NSData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Base64.m"; sourceTree = ""; }; + CC52FFB0153785F3005A767A /* NSData+UAGithubEngineBase64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+UAGithubEngineBase64.h"; sourceTree = ""; }; + CC52FFB1153785F3005A767A /* NSData+UAGithubEngineBase64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+UAGithubEngineBase64.m"; sourceTree = ""; }; CC52FFB2153785F3005A767A /* NSInvocation+Blocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+Blocks.h"; sourceTree = ""; }; CC52FFB3153785F3005A767A /* NSInvocation+Blocks.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+Blocks.m"; sourceTree = ""; }; CC52FFB4153785F3005A767A /* NSString+UAGithubEngineUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+UAGithubEngineUtilities.h"; sourceTree = ""; }; @@ -153,8 +153,8 @@ CC52FFB9153785F3005A767A /* UAGithubEngine.m */, CC52FFAE153785F3005A767A /* NSArray+Utilities.h */, CC52FFAF153785F3005A767A /* NSArray+Utilities.m */, - CC52FFB0153785F3005A767A /* NSData+Base64.h */, - CC52FFB1153785F3005A767A /* NSData+Base64.m */, + CC52FFB0153785F3005A767A /* NSData+UAGithubEngineBase64.h */, + CC52FFB1153785F3005A767A /* NSData+UAGithubEngineBase64.m */, CC52FFB2153785F3005A767A /* NSInvocation+Blocks.h */, CC52FFB3153785F3005A767A /* NSInvocation+Blocks.m */, CC52FFB4153785F3005A767A /* NSString+UAGithubEngineUtilities.h */, @@ -183,7 +183,7 @@ files = ( CC52FFCD153785F3005A767A /* UAGithubEngine.h in Headers */, CC52FFC3153785F3005A767A /* NSArray+Utilities.h in Headers */, - CC52FFC5153785F3005A767A /* NSData+Base64.h in Headers */, + CC52FFC5153785F3005A767A /* NSData+UAGithubEngineBase64.h in Headers */, CC52FFC7153785F3005A767A /* NSInvocation+Blocks.h in Headers */, CC52FFC9153785F3005A767A /* NSString+UAGithubEngineUtilities.h in Headers */, CC52FFCB153785F3005A767A /* NSString+UUID.h in Headers */, @@ -257,7 +257,7 @@ buildActionMask = 2147483647; files = ( CC52FFC4153785F3005A767A /* NSArray+Utilities.m in Sources */, - CC52FFC6153785F3005A767A /* NSData+Base64.m in Sources */, + CC52FFC6153785F3005A767A /* NSData+UAGithubEngineBase64.m in Sources */, CC52FFC8153785F3005A767A /* NSInvocation+Blocks.m in Sources */, CC52FFCA153785F3005A767A /* NSString+UAGithubEngineUtilities.m in Sources */, CC52FFCC153785F3005A767A /* NSString+UUID.m in Sources */, diff --git a/UAGithubEngine.xcodeproj/project.xcworkspace/xcuserdata/jakemarsh.xcuserdatad/UserInterfaceState.xcuserstate b/UAGithubEngine.xcodeproj/project.xcworkspace/xcuserdata/jakemarsh.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..6200b2220bad518ddf26237252fa20fdeb67a27a GIT binary patch literal 13744 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 literal 0 HcmV?d00001 diff --git a/UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/UAGithubEngine.xcscheme b/UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/UAGithubEngine.xcscheme new file mode 100644 index 0000000..a17e55c --- /dev/null +++ b/UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/UAGithubEngine.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/xcschememanagement.plist b/UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..44220c9 --- /dev/null +++ b/UAGithubEngine.xcodeproj/xcuserdata/jakemarsh.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + UAGithubEngine.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + CC52FF9C15378566005A767A + + primary + + + + + diff --git a/UAGithubEngine/NSData+Base64.h b/UAGithubEngine/NSData+UAGithubEngineBase64.h similarity index 76% rename from UAGithubEngine/NSData+Base64.h rename to UAGithubEngine/NSData+UAGithubEngineBase64.h index eb1ff48..216db9f 100644 --- a/UAGithubEngine/NSData+Base64.h +++ b/UAGithubEngine/NSData+UAGithubEngineBase64.h @@ -14,20 +14,20 @@ #import -void *NewBase64Decode( +void *UAGithubEngineNewBase64Decode( const char *inputBuffer, size_t length, size_t *outputLength); -char *NewBase64Encode( +char *UAGithubEngineNewBase64Encode( const void *inputBuffer, size_t length, bool separateLines, size_t *outputLength); -@interface NSData (Base64) +@interface NSData (UAGithubEngineBase64) -+ (NSData *)dataFromBase64String:(NSString *)aString; -- (NSString *)base64EncodedString; ++ (NSData *)ua_dataFromBase64String:(NSString *)aString; +- (NSString *)ua_base64EncodedString; @end diff --git a/UAGithubEngine/NSData+Base64.m b/UAGithubEngine/NSData+UAGithubEngineBase64.m similarity index 84% rename from UAGithubEngine/NSData+Base64.m rename to UAGithubEngine/NSData+UAGithubEngineBase64.m index bdfdb69..0e29765 100644 --- a/UAGithubEngine/NSData+Base64.m +++ b/UAGithubEngine/NSData+UAGithubEngineBase64.m @@ -12,12 +12,12 @@ // appreciated but not required. // -#import "NSData+Base64.h" +#import "NSData+UAGithubEngineBase64.h" // // Mapping from 6 bit pattern to ASCII character. // -static unsigned char base64EncodeLookup[65] = +static unsigned char ua_base64EncodeLookup[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; // @@ -28,7 +28,7 @@ // // Mapping from ASCII character to 6 bit pattern. // -static unsigned char base64DecodeLookup[256] = +static unsigned char ua_base64DecodeLookup[256] = { xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, @@ -67,7 +67,7 @@ // returns the decoded buffer. Must be free'd by caller. Length is given by // outputLength. // -void *NewBase64Decode( +void *UAGithubEngineNewBase64Decode( const char *inputBuffer, size_t length, size_t *outputLength) @@ -92,7 +92,7 @@ size_t accumulateIndex = 0; while (i < length) { - unsigned char decode = base64DecodeLookup[inputBuffer[i++]]; + unsigned char decode = ua_base64DecodeLookup[inputBuffer[i++]]; if (decode != xx) { accumulated[accumulateIndex] = decode; @@ -137,7 +137,7 @@ // returns the encoded buffer. Must be free'd by caller. Length is given by // outputLength. // -char *NewBase64Encode( +char *UAGithubEngineNewBase64Encode( const void *buffer, size_t length, bool separateLines, @@ -194,12 +194,12 @@ // // Inner loop: turn 48 bytes into 64 base64 characters // - outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; - outputBuffer[j++] = base64EncodeLookup[((inputBuffer[i] & 0x03) << 4) + outputBuffer[j++] = ua_base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; + outputBuffer[j++] = ua_base64EncodeLookup[((inputBuffer[i] & 0x03) << 4) | ((inputBuffer[i + 1] & 0xF0) >> 4)]; - outputBuffer[j++] = base64EncodeLookup[((inputBuffer[i + 1] & 0x0F) << 2) + outputBuffer[j++] = ua_base64EncodeLookup[((inputBuffer[i + 1] & 0x0F) << 2) | ((inputBuffer[i + 2] & 0xC0) >> 6)]; - outputBuffer[j++] = base64EncodeLookup[inputBuffer[i + 2] & 0x3F]; + outputBuffer[j++] = ua_base64EncodeLookup[inputBuffer[i + 2] & 0x3F]; } if (lineEnd == length) @@ -220,10 +220,10 @@ // // Handle the single '=' case // - outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; - outputBuffer[j++] = base64EncodeLookup[((inputBuffer[i] & 0x03) << 4) + outputBuffer[j++] = ua_base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; + outputBuffer[j++] = ua_base64EncodeLookup[((inputBuffer[i] & 0x03) << 4) | ((inputBuffer[i + 1] & 0xF0) >> 4)]; - outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i + 1] & 0x0F) << 2]; + outputBuffer[j++] = ua_base64EncodeLookup[(inputBuffer[i + 1] & 0x0F) << 2]; outputBuffer[j++] = '='; } else if (i < length) @@ -231,8 +231,8 @@ // // Handle the double '=' case // - outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; - outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0x03) << 4]; + outputBuffer[j++] = ua_base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; + outputBuffer[j++] = ua_base64EncodeLookup[(inputBuffer[i] & 0x03) << 4]; outputBuffer[j++] = '='; outputBuffer[j++] = '='; } @@ -248,7 +248,7 @@ return outputBuffer; } -@implementation NSData (Base64) +@implementation NSData (UAGithubEngineBase64) // // dataFromBase64String: @@ -261,11 +261,11 @@ @implementation NSData (Base64) // // returns the autoreleased NSData representation of the base64 string // -+ (NSData *)dataFromBase64String:(NSString *)aString ++ (NSData *)ua_dataFromBase64String:(NSString *)aString { NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding]; size_t outputLength; - void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength); + void *outputBuffer = UAGithubEngineNewBase64Decode([data bytes], [data length], &outputLength); NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength]; free(outputBuffer); return result; @@ -280,11 +280,11 @@ + (NSData *)dataFromBase64String:(NSString *)aString // returns an autoreleased NSString being the base 64 representation of the // receiver. // -- (NSString *)base64EncodedString +- (NSString *)ua_base64EncodedString { size_t outputLength; char *outputBuffer = - NewBase64Encode([self bytes], [self length], true, &outputLength); + UAGithubEngineNewBase64Encode([self bytes], [self length], true, &outputLength); NSString *result = [[NSString alloc] diff --git a/UAGithubEngine/UAGithubEngine.m b/UAGithubEngine/UAGithubEngine.m index 14a5322..08737b2 100644 --- a/UAGithubEngine/UAGithubEngine.m +++ b/UAGithubEngine/UAGithubEngine.m @@ -15,7 +15,7 @@ #import "UAGithubURLConnection.h" #import "NSString+UAGithubEngineUtilities.h" -#import "NSData+Base64.h" +#import "NSData+UAGithubEngineBase64.h" #import "NSString+UUID.h" #import "NSInvocation+Blocks.h" @@ -149,7 +149,7 @@ - (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:30]; if (self.username && self.password) { - [urlRequest setValue:[NSString stringWithFormat:@"Basic %@", [[[NSString stringWithFormat:@"%@:%@", self.username, self.password] dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString]] forHTTPHeaderField:@"Authorization"]; + [urlRequest setValue:[NSString stringWithFormat:@"Basic %@", [[[NSString stringWithFormat:@"%@:%@", self.username, self.password] dataUsingEncoding:NSUTF8StringEncoding] ua_base64EncodedString]] forHTTPHeaderField:@"Authorization"]; } if (jsonData) From a242a59b2194518ebc3b082326dd467c21918363 Mon Sep 17 00:00:00 2001 From: Jake Marsh Date: Wed, 16 Sep 2015 01:13:11 -0700 Subject: [PATCH 2/2] Add podspec --- UAGithubEngine.podspec.json | 20 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 13744 -> 13057 bytes 2 files changed, 20 insertions(+) create mode 100644 UAGithubEngine.podspec.json diff --git a/UAGithubEngine.podspec.json b/UAGithubEngine.podspec.json new file mode 100644 index 0000000..d509d91 --- /dev/null +++ b/UAGithubEngine.podspec.json @@ -0,0 +1,20 @@ +{ + "name": "UAGithubEngine", + "version": "2.3", + "license": "MIT", + "summary": "Objective-C wrapper for the Github API.", + "homepage": "http://github.com/owainhunt/uagithubengine", + "authors": { + "Owain R Hunt": "owain@underscoreapps.com" + }, + "source": { + "git": "https://github.com/owainhunt/UAGithubEngine.git", + "tag": "2.3" + }, + "source_files": [ + "UAGithubEngine", + "UAGithubEngine/**/*.{h,m}" + ], + "frameworks": "SystemConfiguration", + "requires_arc": true +} \ No newline at end of file diff --git a/UAGithubEngine.xcodeproj/project.xcworkspace/xcuserdata/jakemarsh.xcuserdatad/UserInterfaceState.xcuserstate b/UAGithubEngine.xcodeproj/project.xcworkspace/xcuserdata/jakemarsh.xcuserdatad/UserInterfaceState.xcuserstate index 6200b2220bad518ddf26237252fa20fdeb67a27a..c53c07e78ac50ed1f2fc8f56995f0b337341eae7 100644 GIT binary patch delta 4570 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 ZAScvMXj;2v5(w2jsor(Z$7e$G{{m0DM7#h1 delta 5292 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