From 7f5df3a077b502f363a9de63d5ebd28d3d5469a7 Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Sat, 18 Oct 2014 14:19:51 -0700 Subject: [PATCH] cocoapods --- Blog.xcodeproj/project.pbxproj | 105 + Blog.xcworkspace/contents.xcworkspacedata | 10 + Blog.xcworkspace/xcshareddata/Blog.xccheckout | 41 + Podfile | 16 + Podfile.lock | 115 + Pods/CocoaLumberjack/LICENSE.txt | 18 + .../Lumberjack/DDASLLogCapture.h | 23 + .../Lumberjack/DDASLLogCapture.m | 188 + Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h | 37 + Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m | 95 + .../Lumberjack/DDAbstractDatabaseLogger.h | 102 + .../Lumberjack/DDAbstractDatabaseLogger.m | 727 + Pods/CocoaLumberjack/Lumberjack/DDAssert.h | 16 + .../CocoaLumberjack/Lumberjack/DDFileLogger.h | 406 + .../CocoaLumberjack/Lumberjack/DDFileLogger.m | 1589 ++ Pods/CocoaLumberjack/Lumberjack/DDLog+LOGV.h | 99 + Pods/CocoaLumberjack/Lumberjack/DDLog.h | 692 + Pods/CocoaLumberjack/Lumberjack/DDLog.m | 1253 ++ Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h | 188 + Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m | 1510 ++ .../Extensions/DDContextFilterLogFormatter.h | 63 + .../Extensions/DDContextFilterLogFormatter.m | 191 + .../Extensions/DDDispatchQueueLogFormatter.h | 128 + .../Extensions/DDDispatchQueueLogFormatter.m | 260 + .../Lumberjack/Extensions/DDMultiFormatter.h | 30 + .../Lumberjack/Extensions/DDMultiFormatter.m | 132 + .../Lumberjack/Extensions/README.txt | 7 + Pods/CocoaLumberjack/README.md | 81 + .../Build/CocoaLumberjack/DDASLLogCapture.h | 1 + .../Build/CocoaLumberjack/DDASLLogger.h | 1 + .../DDAbstractDatabaseLogger.h | 1 + Pods/Headers/Build/CocoaLumberjack/DDAssert.h | 1 + .../DDContextFilterLogFormatter.h | 1 + .../DDDispatchQueueLogFormatter.h | 1 + .../Build/CocoaLumberjack/DDFileLogger.h | 1 + .../Build/CocoaLumberjack/DDLog+LOGV.h | 1 + Pods/Headers/Build/CocoaLumberjack/DDLog.h | 1 + .../Build/CocoaLumberjack/DDMultiFormatter.h | 1 + .../Build/CocoaLumberjack/DDTTYLogger.h | 1 + Pods/Headers/Build/Mantle/EXTKeyPathCoding.h | 1 + .../Build/Mantle/EXTRuntimeExtensions.h | 1 + Pods/Headers/Build/Mantle/EXTScope.h | 1 + Pods/Headers/Build/Mantle/MTLJSONAdapter.h | 1 + .../Build/Mantle/MTLManagedObjectAdapter.h | 1 + Pods/Headers/Build/Mantle/MTLModel+NSCoding.h | 1 + Pods/Headers/Build/Mantle/MTLModel.h | 1 + Pods/Headers/Build/Mantle/MTLReflection.h | 1 + .../Build/Mantle/MTLValueTransformer.h | 1 + Pods/Headers/Build/Mantle/Mantle.h | 1 + .../Mantle/NSArray+MTLManipulationAdditions.h | 1 + .../NSDictionary+MTLManipulationAdditions.h | 1 + .../Build/Mantle/NSError+MTLModelException.h | 1 + .../Mantle/NSObject+MTLComparisonAdditions.h | 1 + ...NSValueTransformer+MTLInversionAdditions.h | 1 + ...former+MTLPredefinedTransformerAdditions.h | 1 + Pods/Headers/Build/Mantle/metamacros.h | 1 + Pods/Headers/Build/OHHTTPStubs/OHHTTPStubs.h | 1 + .../OHHTTPStubsResponse+HTTPMessage.h | 1 + .../OHHTTPStubs/OHHTTPStubsResponse+JSON.h | 1 + .../Build/OHHTTPStubs/OHHTTPStubsResponse.h | 1 + .../Build/OMGHTTPURLRQ/OMGFormURLEncode.h | 1 + .../Headers/Build/OMGHTTPURLRQ/OMGHTTPURLRQ.h | 1 + .../Headers/Build/OMGHTTPURLRQ/OMGUserAgent.h | 1 + .../NSNotificationCenter+PromiseKit.h | 1 + .../PromiseKit/NSURLConnection+PromiseKit.h | 1 + Pods/Headers/Build/PromiseKit/Promise+Pause.h | 1 + Pods/Headers/Build/PromiseKit/Promise+Until.h | 1 + Pods/Headers/Build/PromiseKit/Promise+When.h | 1 + Pods/Headers/Build/PromiseKit/Promise.h | 1 + .../Build/PromiseKit/PromiseKit+Foundation.h | 1 + .../Build/PromiseKit/PromiseKit+UIKit.h | 1 + Pods/Headers/Build/PromiseKit/PromiseKit.h | 1 + .../PromiseKit/UIActionSheet+PromiseKit.h | 1 + .../Build/PromiseKit/UIAlertView+PromiseKit.h | 1 + .../Build/PromiseKit/UIView+PromiseKit.h | 1 + .../PromiseKit/UIViewController+PromiseKit.h | 1 + Pods/Headers/Build/PromiseKit/fwd.h | 1 + .../YapDatabase/NSDictionary+YapDatabase.h | 1 + Pods/Headers/Build/YapDatabase/YapCache.h | 1 + .../Build/YapDatabase/YapCollectionKey.h | 1 + Pods/Headers/Build/YapDatabase/YapDatabase.h | 1 + .../Build/YapDatabase/YapDatabaseConnection.h | 1 + .../YapDatabaseConnectionDefaults.h | 1 + .../YapDatabase/YapDatabaseConnectionState.h | 1 + .../Build/YapDatabase/YapDatabaseExtension.h | 1 + .../YapDatabaseExtensionConnection.h | 1 + .../YapDatabase/YapDatabaseExtensionPrivate.h | 1 + .../YapDatabaseExtensionTransaction.h | 1 + .../YapDatabase/YapDatabaseFilteredView.h | 1 + .../YapDatabaseFilteredViewConnection.h | 1 + .../YapDatabaseFilteredViewPrivate.h | 1 + .../YapDatabaseFilteredViewTransaction.h | 1 + .../YapDatabaseFilteredViewTypes.h | 1 + .../YapDatabase/YapDatabaseFullTextSearch.h | 1 + .../YapDatabaseFullTextSearchConnection.h | 1 + .../YapDatabaseFullTextSearchPrivate.h | 1 + .../YapDatabaseFullTextSearchSnippetOptions.h | 1 + .../YapDatabaseFullTextSearchTransaction.h | 1 + .../Build/YapDatabase/YapDatabaseLogging.h | 1 + .../Build/YapDatabase/YapDatabaseManager.h | 1 + .../Build/YapDatabase/YapDatabaseOptions.h | 1 + .../Build/YapDatabase/YapDatabasePrivate.h | 1 + .../Build/YapDatabase/YapDatabaseQuery.h | 1 + .../YapDatabase/YapDatabaseRelationship.h | 1 + .../YapDatabaseRelationshipConnection.h | 1 + .../YapDatabase/YapDatabaseRelationshipEdge.h | 1 + .../YapDatabaseRelationshipEdgePrivate.h | 1 + .../YapDatabase/YapDatabaseRelationshipNode.h | 1 + .../YapDatabaseRelationshipOptions.h | 1 + .../YapDatabaseRelationshipPrivate.h | 1 + .../YapDatabaseRelationshipTransaction.h | 1 + .../YapDatabase/YapDatabaseSearchQueue.h | 1 + .../YapDatabaseSearchQueuePrivate.h | 1 + .../YapDatabaseSearchResultsView.h | 1 + .../YapDatabaseSearchResultsViewConnection.h | 1 + .../YapDatabaseSearchResultsViewOptions.h | 1 + .../YapDatabaseSearchResultsViewPrivate.h | 1 + .../YapDatabaseSearchResultsViewTransaction.h | 1 + .../YapDatabase/YapDatabaseSecondaryIndex.h | 1 + .../YapDatabaseSecondaryIndexConnection.h | 1 + .../YapDatabaseSecondaryIndexOptions.h | 1 + .../YapDatabaseSecondaryIndexPrivate.h | 1 + .../YapDatabaseSecondaryIndexSetup.h | 1 + .../YapDatabaseSecondaryIndexSetupPrivate.h | 1 + .../YapDatabaseSecondaryIndexTransaction.h | 1 + .../Build/YapDatabase/YapDatabaseStatement.h | 1 + .../Build/YapDatabase/YapDatabaseString.h | 1 + .../YapDatabase/YapDatabaseTransaction.h | 1 + .../Build/YapDatabase/YapDatabaseView.h | 1 + .../Build/YapDatabase/YapDatabaseViewChange.h | 1 + .../YapDatabaseViewChangePrivate.h | 1 + .../YapDatabase/YapDatabaseViewConnection.h | 1 + .../YapDatabase/YapDatabaseViewMappings.h | 1 + .../YapDatabaseViewMappingsPrivate.h | 1 + .../YapDatabase/YapDatabaseViewOptions.h | 1 + .../Build/YapDatabase/YapDatabaseViewPage.h | 1 + .../YapDatabase/YapDatabaseViewPageMetadata.h | 1 + .../YapDatabase/YapDatabaseViewPrivate.h | 1 + .../YapDatabase/YapDatabaseViewRangeOptions.h | 1 + .../YapDatabaseViewRangeOptionsPrivate.h | 1 + .../Build/YapDatabase/YapDatabaseViewState.h | 1 + .../YapDatabase/YapDatabaseViewTransaction.h | 1 + .../Build/YapDatabase/YapDatabaseViewTypes.h | 1 + .../Build/YapDatabase/YapMemoryTable.h | 1 + Pods/Headers/Build/YapDatabase/YapNull.h | 1 + Pods/Headers/Build/YapDatabase/YapRowidSet.h | 1 + Pods/Headers/Build/YapDatabase/YapSet.h | 1 + Pods/Headers/Build/YapDatabase/YapTouch.h | 1 + Pods/Headers/Build/libextobjc/EXTADT.h | 1 + .../Build/libextobjc/EXTConcreteProtocol.h | 1 + .../Build/libextobjc/EXTKeyPathCoding.h | 1 + Pods/Headers/Build/libextobjc/EXTNil.h | 1 + .../Build/libextobjc/EXTRuntimeExtensions.h | 1 + .../Build/libextobjc/EXTSafeCategory.h | 1 + Pods/Headers/Build/libextobjc/EXTScope.h | 1 + .../Build/libextobjc/EXTSelectorChecking.h | 1 + Pods/Headers/Build/libextobjc/EXTSynthesize.h | 1 + .../Build/libextobjc/NSInvocation+EXT.h | 1 + .../Build/libextobjc/NSMethodSignature+EXT.h | 1 + Pods/Headers/Build/libextobjc/extobjc.h | 1 + Pods/Headers/Build/libextobjc/metamacros.h | 1 + .../Public/CocoaLumberjack/DDASLLogCapture.h | 1 + .../Public/CocoaLumberjack/DDASLLogger.h | 1 + .../DDAbstractDatabaseLogger.h | 1 + .../Headers/Public/CocoaLumberjack/DDAssert.h | 1 + .../DDContextFilterLogFormatter.h | 1 + .../DDDispatchQueueLogFormatter.h | 1 + .../Public/CocoaLumberjack/DDFileLogger.h | 1 + .../Public/CocoaLumberjack/DDLog+LOGV.h | 1 + Pods/Headers/Public/CocoaLumberjack/DDLog.h | 1 + .../Public/CocoaLumberjack/DDMultiFormatter.h | 1 + .../Public/CocoaLumberjack/DDTTYLogger.h | 1 + Pods/Headers/Public/Mantle/EXTKeyPathCoding.h | 1 + .../Public/Mantle/EXTRuntimeExtensions.h | 1 + Pods/Headers/Public/Mantle/EXTScope.h | 1 + Pods/Headers/Public/Mantle/MTLJSONAdapter.h | 1 + .../Public/Mantle/MTLManagedObjectAdapter.h | 1 + .../Headers/Public/Mantle/MTLModel+NSCoding.h | 1 + Pods/Headers/Public/Mantle/MTLModel.h | 1 + Pods/Headers/Public/Mantle/MTLReflection.h | 1 + .../Public/Mantle/MTLValueTransformer.h | 1 + Pods/Headers/Public/Mantle/Mantle.h | 1 + .../Mantle/NSArray+MTLManipulationAdditions.h | 1 + .../NSDictionary+MTLManipulationAdditions.h | 1 + .../Public/Mantle/NSError+MTLModelException.h | 1 + .../Mantle/NSObject+MTLComparisonAdditions.h | 1 + ...NSValueTransformer+MTLInversionAdditions.h | 1 + ...former+MTLPredefinedTransformerAdditions.h | 1 + Pods/Headers/Public/Mantle/metamacros.h | 1 + Pods/Headers/Public/OHHTTPStubs/OHHTTPStubs.h | 1 + .../OHHTTPStubsResponse+HTTPMessage.h | 1 + .../OHHTTPStubs/OHHTTPStubsResponse+JSON.h | 1 + .../Public/OHHTTPStubs/OHHTTPStubsResponse.h | 1 + .../Public/OMGHTTPURLRQ/OMGFormURLEncode.h | 1 + .../Public/OMGHTTPURLRQ/OMGHTTPURLRQ.h | 1 + .../Public/OMGHTTPURLRQ/OMGUserAgent.h | 1 + .../NSNotificationCenter+PromiseKit.h | 1 + .../PromiseKit/NSURLConnection+PromiseKit.h | 1 + .../Headers/Public/PromiseKit/Promise+Pause.h | 1 + .../Headers/Public/PromiseKit/Promise+Until.h | 1 + Pods/Headers/Public/PromiseKit/Promise+When.h | 1 + Pods/Headers/Public/PromiseKit/Promise.h | 1 + .../Public/PromiseKit/PromiseKit+Foundation.h | 1 + .../Public/PromiseKit/PromiseKit+UIKit.h | 1 + Pods/Headers/Public/PromiseKit/PromiseKit.h | 1 + .../PromiseKit/UIActionSheet+PromiseKit.h | 1 + .../PromiseKit/UIAlertView+PromiseKit.h | 1 + .../Public/PromiseKit/UIView+PromiseKit.h | 1 + .../PromiseKit/UIViewController+PromiseKit.h | 1 + Pods/Headers/Public/PromiseKit/fwd.h | 1 + .../Public/YapDatabase/YapCollectionKey.h | 1 + Pods/Headers/Public/YapDatabase/YapDatabase.h | 1 + .../YapDatabase/YapDatabaseConnection.h | 1 + .../Public/YapDatabase/YapDatabaseExtension.h | 1 + .../YapDatabaseExtensionConnection.h | 1 + .../YapDatabaseExtensionTransaction.h | 1 + .../YapDatabase/YapDatabaseFilteredView.h | 1 + .../YapDatabaseFilteredViewConnection.h | 1 + .../YapDatabaseFilteredViewTransaction.h | 1 + .../YapDatabaseFilteredViewTypes.h | 1 + .../YapDatabase/YapDatabaseFullTextSearch.h | 1 + .../YapDatabaseFullTextSearchConnection.h | 1 + .../YapDatabaseFullTextSearchSnippetOptions.h | 1 + .../YapDatabaseFullTextSearchTransaction.h | 1 + .../Public/YapDatabase/YapDatabaseOptions.h | 1 + .../Public/YapDatabase/YapDatabaseQuery.h | 1 + .../YapDatabase/YapDatabaseRelationship.h | 1 + .../YapDatabaseRelationshipConnection.h | 1 + .../YapDatabase/YapDatabaseRelationshipEdge.h | 1 + .../YapDatabase/YapDatabaseRelationshipNode.h | 1 + .../YapDatabaseRelationshipOptions.h | 1 + .../YapDatabaseRelationshipTransaction.h | 1 + .../YapDatabase/YapDatabaseSearchQueue.h | 1 + .../YapDatabaseSearchQueuePrivate.h | 1 + .../YapDatabaseSearchResultsView.h | 1 + .../YapDatabaseSearchResultsViewConnection.h | 1 + .../YapDatabaseSearchResultsViewOptions.h | 1 + .../YapDatabaseSearchResultsViewTransaction.h | 1 + .../YapDatabase/YapDatabaseSecondaryIndex.h | 1 + .../YapDatabaseSecondaryIndexConnection.h | 1 + .../YapDatabaseSecondaryIndexOptions.h | 1 + .../YapDatabaseSecondaryIndexSetup.h | 1 + .../YapDatabaseSecondaryIndexTransaction.h | 1 + .../YapDatabase/YapDatabaseTransaction.h | 1 + .../Public/YapDatabase/YapDatabaseView.h | 1 + .../YapDatabase/YapDatabaseViewChange.h | 1 + .../YapDatabase/YapDatabaseViewConnection.h | 1 + .../YapDatabase/YapDatabaseViewMappings.h | 1 + .../YapDatabase/YapDatabaseViewOptions.h | 1 + .../YapDatabase/YapDatabaseViewRangeOptions.h | 1 + .../YapDatabase/YapDatabaseViewTransaction.h | 1 + .../Public/YapDatabase/YapDatabaseViewTypes.h | 1 + Pods/Headers/Public/YapDatabase/YapSet.h | 1 + Pods/Headers/Public/libextobjc/EXTADT.h | 1 + .../Public/libextobjc/EXTConcreteProtocol.h | 1 + .../Public/libextobjc/EXTKeyPathCoding.h | 1 + Pods/Headers/Public/libextobjc/EXTNil.h | 1 + .../Public/libextobjc/EXTRuntimeExtensions.h | 1 + .../Public/libextobjc/EXTSafeCategory.h | 1 + Pods/Headers/Public/libextobjc/EXTScope.h | 1 + .../Public/libextobjc/EXTSelectorChecking.h | 1 + .../Headers/Public/libextobjc/EXTSynthesize.h | 1 + .../Public/libextobjc/NSInvocation+EXT.h | 1 + .../Public/libextobjc/NSMethodSignature+EXT.h | 1 + Pods/Headers/Public/libextobjc/extobjc.h | 1 + Pods/Headers/Public/libextobjc/metamacros.h | 1 + Pods/Manifest.lock | 115 + Pods/Mantle/LICENSE.md | 21 + Pods/Mantle/Mantle/MTLJSONAdapter.h | 172 + Pods/Mantle/Mantle/MTLJSONAdapter.m | 325 + Pods/Mantle/Mantle/MTLManagedObjectAdapter.h | 215 + Pods/Mantle/Mantle/MTLManagedObjectAdapter.m | 645 + Pods/Mantle/Mantle/MTLModel+NSCoding.h | 128 + Pods/Mantle/Mantle/MTLModel+NSCoding.m | 267 + Pods/Mantle/Mantle/MTLModel.h | 125 + Pods/Mantle/Mantle/MTLModel.m | 245 + Pods/Mantle/Mantle/MTLReflection.h | 31 + Pods/Mantle/Mantle/MTLReflection.m | 50 + Pods/Mantle/Mantle/MTLValueTransformer.h | 29 + Pods/Mantle/Mantle/MTLValueTransformer.m | 88 + Pods/Mantle/Mantle/Mantle.h | 18 + .../Mantle/NSArray+MTLManipulationAdditions.h | 28 + .../Mantle/NSArray+MTLManipulationAdditions.m | 42 + .../NSDictionary+MTLManipulationAdditions.h | 25 + .../NSDictionary+MTLManipulationAdditions.m | 25 + .../Mantle/Mantle/NSError+MTLModelException.h | 23 + .../Mantle/Mantle/NSError+MTLModelException.m | 36 + .../Mantle/NSObject+MTLComparisonAdditions.h | 15 + .../Mantle/NSObject+MTLComparisonAdditions.m | 16 + ...NSValueTransformer+MTLInversionAdditions.h | 21 + ...NSValueTransformer+MTLInversionAdditions.m | 24 + ...former+MTLPredefinedTransformerAdditions.h | 84 + ...former+MTLPredefinedTransformerAdditions.m | 141 + Pods/Mantle/Mantle/extobjc/EXTKeyPathCoding.h | 68 + .../Mantle/extobjc/EXTRuntimeExtensions.h | 113 + .../Mantle/extobjc/EXTRuntimeExtensions.m | 209 + Pods/Mantle/Mantle/extobjc/EXTScope.h | 99 + Pods/Mantle/Mantle/extobjc/EXTScope.m | 15 + Pods/Mantle/Mantle/extobjc/metamacros.h | 666 + Pods/Mantle/README.md | 511 + Pods/OHHTTPStubs/LICENSE | 9 + .../OHHTTPStubs+NSURLSessionConfiguration.m | 70 + .../OHHTTPStubs/Sources/OHHTTPStubs.h | 120 + .../OHHTTPStubs/Sources/OHHTTPStubs.m | 535 + .../Sources/OHHTTPStubsResponse+HTTPMessage.h | 35 + .../Sources/OHHTTPStubsResponse+HTTPMessage.m | 54 + .../Sources/OHHTTPStubsResponse+JSON.h | 27 + .../Sources/OHHTTPStubsResponse+JSON.m | 31 + .../OHHTTPStubs/Sources/OHHTTPStubsResponse.h | 219 + .../OHHTTPStubs/Sources/OHHTTPStubsResponse.m | 187 + Pods/OHHTTPStubs/README.md | 123 + Pods/OMGHTTPURLRQ/OMGFormURLEncode.h | 13 + Pods/OMGHTTPURLRQ/OMGFormURLEncode.m | 56 + Pods/OMGHTTPURLRQ/OMGHTTPURLRQ.h | 41 + Pods/OMGHTTPURLRQ/OMGHTTPURLRQ.m | 137 + Pods/OMGHTTPURLRQ/OMGUserAgent.h | 3 + Pods/OMGHTTPURLRQ/OMGUserAgent.m | 19 + Pods/OMGHTTPURLRQ/README.markdown | 145 + Pods/Pods.xcodeproj/project.pbxproj | 13854 ++++++++++++++++ Pods/PromiseKit/LICENSE.text | 19 + Pods/PromiseKit/README.markdown | 91 + .../objc/NSNotificationCenter+PromiseKit.h | 12 + .../objc/NSNotificationCenter+PromiseKit.m | 18 + .../objc/NSURLConnection+PromiseKit.h | 24 + .../objc/NSURLConnection+PromiseKit.m | 150 + Pods/PromiseKit/objc/PMKPromise+Pause.m | 30 + Pods/PromiseKit/objc/PMKPromise+Until.m | 31 + Pods/PromiseKit/objc/PMKPromise+When.m | 92 + Pods/PromiseKit/objc/PMKPromise.m | 567 + .../objc/Private/NSMethodSignatureForBlock.m | 71 + Pods/PromiseKit/objc/Private/xctest.rb | 121 + Pods/PromiseKit/objc/PromiseKit.h | 74 + .../objc/PromiseKit/Promise+Pause.h | 20 + .../objc/PromiseKit/Promise+Until.h | 18 + .../PromiseKit/objc/PromiseKit/Promise+When.h | 24 + Pods/PromiseKit/objc/PromiseKit/Promise.h | 131 + Pods/PromiseKit/objc/PromiseKit/fwd.h | 42 + .../objc/UIActionSheet+PromiseKit.h | 10 + .../objc/UIActionSheet+PromiseKit.m | 35 + Pods/PromiseKit/objc/UIAlertView+PromiseKit.h | 10 + Pods/PromiseKit/objc/UIAlertView+PromiseKit.m | 35 + Pods/PromiseKit/objc/UIView+PromiseKit.h | 80 + Pods/PromiseKit/objc/UIView+PromiseKit.m | 107 + .../objc/UIViewController+PromiseKit.h | 22 + .../objc/UIViewController+PromiseKit.m | 179 + .../objc/deprecated/PromiseKit+Foundation.h | 4 + .../objc/deprecated/PromiseKit+UIKit.h | 5 + ...BlogTests-CocoaLumberjack-Private.xcconfig | 5 + .../Pods-BlogTests-CocoaLumberjack-dummy.m | 5 + .../Pods-BlogTests-CocoaLumberjack-prefix.pch | 5 + .../Pods-BlogTests-CocoaLumberjack.xcconfig | 0 .../Pods-BlogTests-Mantle-Private.xcconfig | 5 + .../Pods-BlogTests-Mantle-dummy.m | 5 + .../Pods-BlogTests-Mantle-prefix.pch | 5 + .../Pods-BlogTests-Mantle.xcconfig | 1 + ...ods-BlogTests-OHHTTPStubs-Private.xcconfig | 5 + .../Pods-BlogTests-OHHTTPStubs-dummy.m | 5 + .../Pods-BlogTests-OHHTTPStubs-prefix.pch | 5 + .../Pods-BlogTests-OHHTTPStubs.xcconfig | 2 + ...ds-BlogTests-OMGHTTPURLRQ-Private.xcconfig | 5 + .../Pods-BlogTests-OMGHTTPURLRQ-dummy.m | 5 + .../Pods-BlogTests-OMGHTTPURLRQ-prefix.pch | 5 + .../Pods-BlogTests-OMGHTTPURLRQ.xcconfig | 0 ...Pods-BlogTests-PromiseKit-Private.xcconfig | 5 + .../Pods-BlogTests-PromiseKit-dummy.m | 5 + .../Pods-BlogTests-PromiseKit-prefix.pch | 5 + .../Pods-BlogTests-PromiseKit.xcconfig | 2 + ...ods-BlogTests-YapDatabase-Private.xcconfig | 5 + .../Pods-BlogTests-YapDatabase-dummy.m | 5 + .../Pods-BlogTests-YapDatabase-prefix.pch | 5 + .../Pods-BlogTests-YapDatabase.xcconfig | 1 + ...Pods-BlogTests-libextobjc-Private.xcconfig | 5 + .../Pods-BlogTests-libextobjc-dummy.m | 5 + .../Pods-BlogTests-libextobjc-prefix.pch | 5 + .../Pods-BlogTests-libextobjc.xcconfig | 0 .../Pods-BlogTests-acknowledgements.markdown | 120 + .../Pods-BlogTests-acknowledgements.plist | 174 + .../Pods-BlogTests/Pods-BlogTests-dummy.m | 5 + .../Pods-BlogTests-environment.h | 236 + .../Pods-BlogTests-resources.sh | 68 + .../Pods-BlogTests.debug.xcconfig | 5 + .../Pods-BlogTests.release.xcconfig | 5 + .../Pods-CocoaLumberjack-Private.xcconfig | 5 + .../Pods-CocoaLumberjack-dummy.m | 5 + .../Pods-CocoaLumberjack-prefix.pch | 5 + .../Pods-CocoaLumberjack.xcconfig | 0 .../Pods-Mantle/Pods-Mantle-Private.xcconfig | 5 + .../Pods-Mantle/Pods-Mantle-dummy.m | 5 + .../Pods-Mantle/Pods-Mantle-prefix.pch | 5 + .../Pods-Mantle/Pods-Mantle.xcconfig | 1 + .../Pods-OMGHTTPURLRQ-Private.xcconfig | 5 + .../Pods-OMGHTTPURLRQ-dummy.m | 5 + .../Pods-OMGHTTPURLRQ-prefix.pch | 5 + .../Pods-OMGHTTPURLRQ.xcconfig | 0 .../Pods-PromiseKit-Private.xcconfig | 5 + .../Pods-PromiseKit/Pods-PromiseKit-dummy.m | 5 + .../Pods-PromiseKit-prefix.pch | 5 + .../Pods-PromiseKit/Pods-PromiseKit.xcconfig | 2 + .../Pods-YapDatabase-Private.xcconfig | 5 + .../Pods-YapDatabase/Pods-YapDatabase-dummy.m | 5 + .../Pods-YapDatabase-prefix.pch | 5 + .../Pods-YapDatabase.xcconfig | 1 + .../Pods-libextobjc-Private.xcconfig | 5 + .../Pods-libextobjc/Pods-libextobjc-dummy.m | 5 + .../Pods-libextobjc-prefix.pch | 5 + .../Pods-libextobjc/Pods-libextobjc.xcconfig | 0 .../Pods/Pods-acknowledgements.markdown | 108 + .../Pods/Pods-acknowledgements.plist | 158 + Pods/Target Support Files/Pods/Pods-dummy.m | 5 + .../Pods/Pods-environment.h | 224 + .../Pods/Pods-resources.sh | 68 + .../Pods/Pods.debug.xcconfig | 5 + .../Pods/Pods.release.xcconfig | 5 + Pods/YapDatabase/LICENSE.txt | 18 + Pods/YapDatabase/README.md | 32 + .../Internal/YapDatabaseFilteredViewPrivate.h | 59 + .../FilteredViews/YapDatabaseFilteredView.h | 81 + .../FilteredViews/YapDatabaseFilteredView.m | 285 + .../YapDatabaseFilteredViewConnection.h | 12 + .../YapDatabaseFilteredViewConnection.m | 264 + .../YapDatabaseFilteredViewTransaction.h | 39 + .../YapDatabaseFilteredViewTransaction.m | 1446 ++ .../YapDatabaseFilteredViewTypes.h | 32 + .../YapDatabaseFullTextSearchPrivate.h | 91 + .../YapDatabaseFullTextSearch.h | 89 + .../YapDatabaseFullTextSearch.m | 151 + .../YapDatabaseFullTextSearchConnection.h | 32 + .../YapDatabaseFullTextSearchConnection.m | 353 + .../YapDatabaseFullTextSearchSnippetOptions.h | 79 + .../YapDatabaseFullTextSearchSnippetOptions.m | 95 + .../YapDatabaseFullTextSearchTransaction.h | 68 + .../YapDatabaseFullTextSearchTransaction.m | 1216 ++ .../Internal/YapDatabaseExtensionPrivate.h | 162 + .../Protocol/YapDatabaseExtension.h | 23 + .../Protocol/YapDatabaseExtension.m | 128 + .../Protocol/YapDatabaseExtensionConnection.h | 11 + .../Protocol/YapDatabaseExtensionConnection.m | 155 + .../YapDatabaseExtensionTransaction.h | 11 + .../YapDatabaseExtensionTransaction.m | 651 + .../YapDatabaseRelationshipEdgePrivate.h | 79 + .../Internal/YapDatabaseRelationshipPrivate.h | 125 + .../Relationships/YapDatabaseRelationship.h | 52 + .../Relationships/YapDatabaseRelationship.m | 137 + .../YapDatabaseRelationshipConnection.h | 29 + .../YapDatabaseRelationshipConnection.m | 826 + .../YapDatabaseRelationshipEdge.h | 163 + .../YapDatabaseRelationshipEdge.m | 450 + .../YapDatabaseRelationshipNode.h | 100 + .../YapDatabaseRelationshipOptions.h | 81 + .../YapDatabaseRelationshipOptions.m | 37 + .../YapDatabaseRelationshipTransaction.h | 437 + .../YapDatabaseRelationshipTransaction.m | 5586 +++++++ .../YapDatabaseSearchResultsViewPrivate.h | 68 + .../SearchResults/YapDatabaseSearchQueue.h | 66 + .../SearchResults/YapDatabaseSearchQueue.m | 167 + .../YapDatabaseSearchQueuePrivate.h | 13 + .../YapDatabaseSearchResultsView.h | 109 + .../YapDatabaseSearchResultsView.m | 231 + .../YapDatabaseSearchResultsViewConnection.h | 12 + .../YapDatabaseSearchResultsViewConnection.m | 317 + .../YapDatabaseSearchResultsViewOptions.h | 40 + .../YapDatabaseSearchResultsViewOptions.m | 35 + .../YapDatabaseSearchResultsViewTransaction.h | 50 + .../YapDatabaseSearchResultsViewTransaction.m | 2377 +++ .../YapDatabaseSecondaryIndexPrivate.h | 84 + .../YapDatabaseSecondaryIndexSetupPrivate.h | 18 + .../YapDatabaseSecondaryIndex.h | 202 + .../YapDatabaseSecondaryIndex.m | 163 + .../YapDatabaseSecondaryIndexConnection.h | 33 + .../YapDatabaseSecondaryIndexConnection.m | 338 + .../YapDatabaseSecondaryIndexOptions.h | 40 + .../YapDatabaseSecondaryIndexOptions.m | 27 + .../YapDatabaseSecondaryIndexSetup.h | 32 + .../YapDatabaseSecondaryIndexSetup.m | 245 + .../YapDatabaseSecondaryIndexTransaction.h | 58 + .../YapDatabaseSecondaryIndexTransaction.m | 1353 ++ .../Internal/YapDatabaseViewChangePrivate.h | 104 + .../Internal/YapDatabaseViewMappingsPrivate.h | 92 + .../Views/Internal/YapDatabaseViewPage.h | 39 + .../Views/Internal/YapDatabaseViewPage.mm | 311 + .../Internal/YapDatabaseViewPageMetadata.h | 27 + .../Internal/YapDatabaseViewPageMetadata.m | 28 + .../Views/Internal/YapDatabaseViewPrivate.h | 252 + .../YapDatabaseViewRangeOptionsPrivate.h | 17 + .../Views/Internal/YapDatabaseViewState.h | 36 + .../Views/Internal/YapDatabaseViewState.m | 202 + .../Views/Utilities/YapDatabaseViewChange.h | 318 + .../Views/Utilities/YapDatabaseViewChange.m | 2732 +++ .../Views/Utilities/YapDatabaseViewMappings.h | 870 + .../Views/Utilities/YapDatabaseViewMappings.m | 1752 ++ .../Utilities/YapDatabaseViewRangeOptions.h | 328 + .../Utilities/YapDatabaseViewRangeOptions.m | 141 + .../Extensions/Views/YapDatabaseView.h | 134 + .../Extensions/Views/YapDatabaseView.m | 462 + .../Views/YapDatabaseViewConnection.h | 214 + .../Views/YapDatabaseViewConnection.m | 1152 ++ .../Extensions/Views/YapDatabaseViewOptions.h | 63 + .../Extensions/Views/YapDatabaseViewOptions.m | 27 + .../Views/YapDatabaseViewTransaction.h | 630 + .../Views/YapDatabaseViewTransaction.m | 5581 +++++++ .../Extensions/Views/YapDatabaseViewTypes.h | 99 + .../Internal/NSDictionary+YapDatabase.h | 8 + .../Internal/NSDictionary+YapDatabase.m | 19 + .../YapDatabase/Internal/YapCache.h | 94 + .../YapDatabase/Internal/YapCache.m | 478 + .../Internal/YapDatabaseConnectionDefaults.h | 37 + .../Internal/YapDatabaseConnectionDefaults.m | 86 + .../Internal/YapDatabaseConnectionState.h | 29 + .../Internal/YapDatabaseConnectionState.m | 48 + .../YapDatabase/Internal/YapDatabaseLogging.h | 158 + .../YapDatabase/Internal/YapDatabaseLogging.m | 73 + .../YapDatabase/Internal/YapDatabaseManager.h | 17 + .../YapDatabase/Internal/YapDatabaseManager.m | 57 + .../YapDatabase/Internal/YapDatabasePrivate.h | 462 + .../Internal/YapDatabaseStatement.h | 13 + .../Internal/YapDatabaseStatement.m | 26 + .../YapDatabase/Internal/YapDatabaseString.h | 121 + .../YapDatabase/Internal/YapMemoryTable.h | 74 + .../YapDatabase/Internal/YapMemoryTable.m | 603 + .../YapDatabase/Internal/YapNull.h | 17 + .../YapDatabase/Internal/YapNull.m | 35 + .../YapDatabase/Internal/YapRowidSet.h | 34 + .../YapDatabase/Internal/YapRowidSet.mm | 89 + .../YapDatabase/Internal/YapTouch.h | 15 + .../YapDatabase/Internal/YapTouch.m | 31 + .../YapDatabase/Utilities/YapCollectionKey.h | 33 + .../YapDatabase/Utilities/YapCollectionKey.m | 246 + .../YapDatabase/Utilities/YapDatabaseQuery.h | 47 + .../YapDatabase/Utilities/YapDatabaseQuery.m | 132 + .../YapDatabase/Utilities/YapSet.h | 41 + .../YapDatabase/Utilities/YapSet.m | 82 + Pods/YapDatabase/YapDatabase/YapDatabase.h | 654 + Pods/YapDatabase/YapDatabase/YapDatabase.m | 2468 +++ .../YapDatabase/YapDatabaseConnection.h | 591 + .../YapDatabase/YapDatabaseConnection.m | 4568 +++++ .../YapDatabase/YapDatabaseOptions.h | 92 + .../YapDatabase/YapDatabaseOptions.m | 44 + .../YapDatabase/YapDatabaseTransaction.h | 642 + .../YapDatabase/YapDatabaseTransaction.m | 5609 +++++++ Pods/libextobjc/LICENSE.md | 18 + Pods/libextobjc/README.md | 75 + Pods/libextobjc/extobjc/EXTADT.h | 568 + Pods/libextobjc/extobjc/EXTADT.m | 36 + Pods/libextobjc/extobjc/EXTConcreteProtocol.h | 123 + Pods/libextobjc/extobjc/EXTConcreteProtocol.m | 106 + Pods/libextobjc/extobjc/EXTKeyPathCoding.h | 68 + Pods/libextobjc/extobjc/EXTNil.h | 38 + Pods/libextobjc/extobjc/EXTNil.m | 90 + .../libextobjc/extobjc/EXTRuntimeExtensions.h | 382 + .../libextobjc/extobjc/EXTRuntimeExtensions.m | 1026 ++ Pods/libextobjc/extobjc/EXTSafeCategory.h | 99 + Pods/libextobjc/extobjc/EXTSafeCategory.m | 46 + Pods/libextobjc/extobjc/EXTScope.h | 99 + Pods/libextobjc/extobjc/EXTScope.m | 15 + Pods/libextobjc/extobjc/EXTSelectorChecking.h | 52 + Pods/libextobjc/extobjc/EXTSelectorChecking.m | 17 + Pods/libextobjc/extobjc/EXTSynthesize.h | 74 + Pods/libextobjc/extobjc/NSInvocation+EXT.h | 27 + Pods/libextobjc/extobjc/NSInvocation+EXT.m | 350 + .../extobjc/NSMethodSignature+EXT.h | 29 + .../extobjc/NSMethodSignature+EXT.m | 88 + Pods/libextobjc/extobjc/extobjc.h | 20 + Pods/libextobjc/extobjc/metamacros.h | 667 + 563 files changed, 89446 insertions(+) create mode 100644 Blog.xcworkspace/contents.xcworkspacedata create mode 100644 Blog.xcworkspace/xcshareddata/Blog.xccheckout create mode 100644 Podfile create mode 100644 Podfile.lock create mode 100644 Pods/CocoaLumberjack/LICENSE.txt create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.m create mode 100755 Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h create mode 100755 Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDAssert.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/DDLog+LOGV.h create mode 100755 Pods/CocoaLumberjack/Lumberjack/DDLog.h create mode 100755 Pods/CocoaLumberjack/Lumberjack/DDLog.m create mode 100755 Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h create mode 100755 Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.h create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.m create mode 100644 Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt create mode 100644 Pods/CocoaLumberjack/README.md create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDASLLogCapture.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDASLLogger.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDAbstractDatabaseLogger.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDAssert.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDContextFilterLogFormatter.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDDispatchQueueLogFormatter.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDFileLogger.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDLog+LOGV.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDLog.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDMultiFormatter.h create mode 120000 Pods/Headers/Build/CocoaLumberjack/DDTTYLogger.h create mode 120000 Pods/Headers/Build/Mantle/EXTKeyPathCoding.h create mode 120000 Pods/Headers/Build/Mantle/EXTRuntimeExtensions.h create mode 120000 Pods/Headers/Build/Mantle/EXTScope.h create mode 120000 Pods/Headers/Build/Mantle/MTLJSONAdapter.h create mode 120000 Pods/Headers/Build/Mantle/MTLManagedObjectAdapter.h create mode 120000 Pods/Headers/Build/Mantle/MTLModel+NSCoding.h create mode 120000 Pods/Headers/Build/Mantle/MTLModel.h create mode 120000 Pods/Headers/Build/Mantle/MTLReflection.h create mode 120000 Pods/Headers/Build/Mantle/MTLValueTransformer.h create mode 120000 Pods/Headers/Build/Mantle/Mantle.h create mode 120000 Pods/Headers/Build/Mantle/NSArray+MTLManipulationAdditions.h create mode 120000 Pods/Headers/Build/Mantle/NSDictionary+MTLManipulationAdditions.h create mode 120000 Pods/Headers/Build/Mantle/NSError+MTLModelException.h create mode 120000 Pods/Headers/Build/Mantle/NSObject+MTLComparisonAdditions.h create mode 120000 Pods/Headers/Build/Mantle/NSValueTransformer+MTLInversionAdditions.h create mode 120000 Pods/Headers/Build/Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h create mode 120000 Pods/Headers/Build/Mantle/metamacros.h create mode 120000 Pods/Headers/Build/OHHTTPStubs/OHHTTPStubs.h create mode 120000 Pods/Headers/Build/OHHTTPStubs/OHHTTPStubsResponse+HTTPMessage.h create mode 120000 Pods/Headers/Build/OHHTTPStubs/OHHTTPStubsResponse+JSON.h create mode 120000 Pods/Headers/Build/OHHTTPStubs/OHHTTPStubsResponse.h create mode 120000 Pods/Headers/Build/OMGHTTPURLRQ/OMGFormURLEncode.h create mode 120000 Pods/Headers/Build/OMGHTTPURLRQ/OMGHTTPURLRQ.h create mode 120000 Pods/Headers/Build/OMGHTTPURLRQ/OMGUserAgent.h create mode 120000 Pods/Headers/Build/PromiseKit/NSNotificationCenter+PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/NSURLConnection+PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/Promise+Pause.h create mode 120000 Pods/Headers/Build/PromiseKit/Promise+Until.h create mode 120000 Pods/Headers/Build/PromiseKit/Promise+When.h create mode 120000 Pods/Headers/Build/PromiseKit/Promise.h create mode 120000 Pods/Headers/Build/PromiseKit/PromiseKit+Foundation.h create mode 120000 Pods/Headers/Build/PromiseKit/PromiseKit+UIKit.h create mode 120000 Pods/Headers/Build/PromiseKit/PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/UIActionSheet+PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/UIAlertView+PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/UIView+PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/UIViewController+PromiseKit.h create mode 120000 Pods/Headers/Build/PromiseKit/fwd.h create mode 120000 Pods/Headers/Build/YapDatabase/NSDictionary+YapDatabase.h create mode 120000 Pods/Headers/Build/YapDatabase/YapCache.h create mode 120000 Pods/Headers/Build/YapDatabase/YapCollectionKey.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabase.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseConnectionDefaults.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseConnectionState.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseExtension.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseExtensionConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseExtensionPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseExtensionTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFilteredView.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFilteredViewConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFilteredViewPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFilteredViewTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFilteredViewTypes.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFullTextSearch.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFullTextSearchConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFullTextSearchPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseFullTextSearchTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseLogging.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseManager.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabasePrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseQuery.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationship.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipEdge.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipEdgePrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipNode.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseRelationshipTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchQueue.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchQueuePrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchResultsView.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchResultsViewConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchResultsViewOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchResultsViewPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSearchResultsViewTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndex.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndexConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndexOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndexPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndexSetup.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndexSetupPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseSecondaryIndexTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseStatement.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseString.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseView.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewChange.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewChangePrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewConnection.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewMappings.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewMappingsPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewPage.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewPageMetadata.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewRangeOptions.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewState.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewTransaction.h create mode 120000 Pods/Headers/Build/YapDatabase/YapDatabaseViewTypes.h create mode 120000 Pods/Headers/Build/YapDatabase/YapMemoryTable.h create mode 120000 Pods/Headers/Build/YapDatabase/YapNull.h create mode 120000 Pods/Headers/Build/YapDatabase/YapRowidSet.h create mode 120000 Pods/Headers/Build/YapDatabase/YapSet.h create mode 120000 Pods/Headers/Build/YapDatabase/YapTouch.h create mode 120000 Pods/Headers/Build/libextobjc/EXTADT.h create mode 120000 Pods/Headers/Build/libextobjc/EXTConcreteProtocol.h create mode 120000 Pods/Headers/Build/libextobjc/EXTKeyPathCoding.h create mode 120000 Pods/Headers/Build/libextobjc/EXTNil.h create mode 120000 Pods/Headers/Build/libextobjc/EXTRuntimeExtensions.h create mode 120000 Pods/Headers/Build/libextobjc/EXTSafeCategory.h create mode 120000 Pods/Headers/Build/libextobjc/EXTScope.h create mode 120000 Pods/Headers/Build/libextobjc/EXTSelectorChecking.h create mode 120000 Pods/Headers/Build/libextobjc/EXTSynthesize.h create mode 120000 Pods/Headers/Build/libextobjc/NSInvocation+EXT.h create mode 120000 Pods/Headers/Build/libextobjc/NSMethodSignature+EXT.h create mode 120000 Pods/Headers/Build/libextobjc/extobjc.h create mode 120000 Pods/Headers/Build/libextobjc/metamacros.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDASLLogCapture.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDASLLogger.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDAbstractDatabaseLogger.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDAssert.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDContextFilterLogFormatter.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDDispatchQueueLogFormatter.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDFileLogger.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDLog+LOGV.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDLog.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDMultiFormatter.h create mode 120000 Pods/Headers/Public/CocoaLumberjack/DDTTYLogger.h create mode 120000 Pods/Headers/Public/Mantle/EXTKeyPathCoding.h create mode 120000 Pods/Headers/Public/Mantle/EXTRuntimeExtensions.h create mode 120000 Pods/Headers/Public/Mantle/EXTScope.h create mode 120000 Pods/Headers/Public/Mantle/MTLJSONAdapter.h create mode 120000 Pods/Headers/Public/Mantle/MTLManagedObjectAdapter.h create mode 120000 Pods/Headers/Public/Mantle/MTLModel+NSCoding.h create mode 120000 Pods/Headers/Public/Mantle/MTLModel.h create mode 120000 Pods/Headers/Public/Mantle/MTLReflection.h create mode 120000 Pods/Headers/Public/Mantle/MTLValueTransformer.h create mode 120000 Pods/Headers/Public/Mantle/Mantle.h create mode 120000 Pods/Headers/Public/Mantle/NSArray+MTLManipulationAdditions.h create mode 120000 Pods/Headers/Public/Mantle/NSDictionary+MTLManipulationAdditions.h create mode 120000 Pods/Headers/Public/Mantle/NSError+MTLModelException.h create mode 120000 Pods/Headers/Public/Mantle/NSObject+MTLComparisonAdditions.h create mode 120000 Pods/Headers/Public/Mantle/NSValueTransformer+MTLInversionAdditions.h create mode 120000 Pods/Headers/Public/Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h create mode 120000 Pods/Headers/Public/Mantle/metamacros.h create mode 120000 Pods/Headers/Public/OHHTTPStubs/OHHTTPStubs.h create mode 120000 Pods/Headers/Public/OHHTTPStubs/OHHTTPStubsResponse+HTTPMessage.h create mode 120000 Pods/Headers/Public/OHHTTPStubs/OHHTTPStubsResponse+JSON.h create mode 120000 Pods/Headers/Public/OHHTTPStubs/OHHTTPStubsResponse.h create mode 120000 Pods/Headers/Public/OMGHTTPURLRQ/OMGFormURLEncode.h create mode 120000 Pods/Headers/Public/OMGHTTPURLRQ/OMGHTTPURLRQ.h create mode 120000 Pods/Headers/Public/OMGHTTPURLRQ/OMGUserAgent.h create mode 120000 Pods/Headers/Public/PromiseKit/NSNotificationCenter+PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/NSURLConnection+PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/Promise+Pause.h create mode 120000 Pods/Headers/Public/PromiseKit/Promise+Until.h create mode 120000 Pods/Headers/Public/PromiseKit/Promise+When.h create mode 120000 Pods/Headers/Public/PromiseKit/Promise.h create mode 120000 Pods/Headers/Public/PromiseKit/PromiseKit+Foundation.h create mode 120000 Pods/Headers/Public/PromiseKit/PromiseKit+UIKit.h create mode 120000 Pods/Headers/Public/PromiseKit/PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/UIActionSheet+PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/UIAlertView+PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/UIView+PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/UIViewController+PromiseKit.h create mode 120000 Pods/Headers/Public/PromiseKit/fwd.h create mode 120000 Pods/Headers/Public/YapDatabase/YapCollectionKey.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabase.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseExtension.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseExtensionConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseExtensionTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFilteredView.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFilteredViewConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFilteredViewTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFilteredViewTypes.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFullTextSearch.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFullTextSearchConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseFullTextSearchTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseQuery.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseRelationship.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseRelationshipConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseRelationshipEdge.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseRelationshipNode.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseRelationshipOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseRelationshipTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSearchQueue.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSearchQueuePrivate.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSearchResultsView.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSearchResultsViewConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSearchResultsViewOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSearchResultsViewTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSecondaryIndex.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSecondaryIndexConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSecondaryIndexOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSecondaryIndexSetup.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseSecondaryIndexTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseView.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewChange.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewConnection.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewMappings.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewRangeOptions.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewTransaction.h create mode 120000 Pods/Headers/Public/YapDatabase/YapDatabaseViewTypes.h create mode 120000 Pods/Headers/Public/YapDatabase/YapSet.h create mode 120000 Pods/Headers/Public/libextobjc/EXTADT.h create mode 120000 Pods/Headers/Public/libextobjc/EXTConcreteProtocol.h create mode 120000 Pods/Headers/Public/libextobjc/EXTKeyPathCoding.h create mode 120000 Pods/Headers/Public/libextobjc/EXTNil.h create mode 120000 Pods/Headers/Public/libextobjc/EXTRuntimeExtensions.h create mode 120000 Pods/Headers/Public/libextobjc/EXTSafeCategory.h create mode 120000 Pods/Headers/Public/libextobjc/EXTScope.h create mode 120000 Pods/Headers/Public/libextobjc/EXTSelectorChecking.h create mode 120000 Pods/Headers/Public/libextobjc/EXTSynthesize.h create mode 120000 Pods/Headers/Public/libextobjc/NSInvocation+EXT.h create mode 120000 Pods/Headers/Public/libextobjc/NSMethodSignature+EXT.h create mode 120000 Pods/Headers/Public/libextobjc/extobjc.h create mode 120000 Pods/Headers/Public/libextobjc/metamacros.h create mode 100644 Pods/Manifest.lock create mode 100644 Pods/Mantle/LICENSE.md create mode 100644 Pods/Mantle/Mantle/MTLJSONAdapter.h create mode 100644 Pods/Mantle/Mantle/MTLJSONAdapter.m create mode 100644 Pods/Mantle/Mantle/MTLManagedObjectAdapter.h create mode 100644 Pods/Mantle/Mantle/MTLManagedObjectAdapter.m create mode 100644 Pods/Mantle/Mantle/MTLModel+NSCoding.h create mode 100644 Pods/Mantle/Mantle/MTLModel+NSCoding.m create mode 100644 Pods/Mantle/Mantle/MTLModel.h create mode 100644 Pods/Mantle/Mantle/MTLModel.m create mode 100644 Pods/Mantle/Mantle/MTLReflection.h create mode 100644 Pods/Mantle/Mantle/MTLReflection.m create mode 100644 Pods/Mantle/Mantle/MTLValueTransformer.h create mode 100644 Pods/Mantle/Mantle/MTLValueTransformer.m create mode 100644 Pods/Mantle/Mantle/Mantle.h create mode 100644 Pods/Mantle/Mantle/NSArray+MTLManipulationAdditions.h create mode 100644 Pods/Mantle/Mantle/NSArray+MTLManipulationAdditions.m create mode 100644 Pods/Mantle/Mantle/NSDictionary+MTLManipulationAdditions.h create mode 100644 Pods/Mantle/Mantle/NSDictionary+MTLManipulationAdditions.m create mode 100644 Pods/Mantle/Mantle/NSError+MTLModelException.h create mode 100644 Pods/Mantle/Mantle/NSError+MTLModelException.m create mode 100644 Pods/Mantle/Mantle/NSObject+MTLComparisonAdditions.h create mode 100644 Pods/Mantle/Mantle/NSObject+MTLComparisonAdditions.m create mode 100644 Pods/Mantle/Mantle/NSValueTransformer+MTLInversionAdditions.h create mode 100644 Pods/Mantle/Mantle/NSValueTransformer+MTLInversionAdditions.m create mode 100644 Pods/Mantle/Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h create mode 100644 Pods/Mantle/Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m create mode 100644 Pods/Mantle/Mantle/extobjc/EXTKeyPathCoding.h create mode 100644 Pods/Mantle/Mantle/extobjc/EXTRuntimeExtensions.h create mode 100644 Pods/Mantle/Mantle/extobjc/EXTRuntimeExtensions.m create mode 100644 Pods/Mantle/Mantle/extobjc/EXTScope.h create mode 100644 Pods/Mantle/Mantle/extobjc/EXTScope.m create mode 100644 Pods/Mantle/Mantle/extobjc/metamacros.h create mode 100644 Pods/Mantle/README.md create mode 100644 Pods/OHHTTPStubs/LICENSE create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubs+NSURLSessionConfiguration.m create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubs.h create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubs.m create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubsResponse+HTTPMessage.h create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubsResponse+HTTPMessage.m create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubsResponse+JSON.h create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubsResponse+JSON.m create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubsResponse.h create mode 100644 Pods/OHHTTPStubs/OHHTTPStubs/Sources/OHHTTPStubsResponse.m create mode 100644 Pods/OHHTTPStubs/README.md create mode 100644 Pods/OMGHTTPURLRQ/OMGFormURLEncode.h create mode 100644 Pods/OMGHTTPURLRQ/OMGFormURLEncode.m create mode 100644 Pods/OMGHTTPURLRQ/OMGHTTPURLRQ.h create mode 100644 Pods/OMGHTTPURLRQ/OMGHTTPURLRQ.m create mode 100644 Pods/OMGHTTPURLRQ/OMGUserAgent.h create mode 100644 Pods/OMGHTTPURLRQ/OMGUserAgent.m create mode 100644 Pods/OMGHTTPURLRQ/README.markdown create mode 100644 Pods/Pods.xcodeproj/project.pbxproj create mode 100644 Pods/PromiseKit/LICENSE.text create mode 100644 Pods/PromiseKit/README.markdown create mode 100644 Pods/PromiseKit/objc/NSNotificationCenter+PromiseKit.h create mode 100644 Pods/PromiseKit/objc/NSNotificationCenter+PromiseKit.m create mode 100644 Pods/PromiseKit/objc/NSURLConnection+PromiseKit.h create mode 100644 Pods/PromiseKit/objc/NSURLConnection+PromiseKit.m create mode 100644 Pods/PromiseKit/objc/PMKPromise+Pause.m create mode 100644 Pods/PromiseKit/objc/PMKPromise+Until.m create mode 100644 Pods/PromiseKit/objc/PMKPromise+When.m create mode 100644 Pods/PromiseKit/objc/PMKPromise.m create mode 100644 Pods/PromiseKit/objc/Private/NSMethodSignatureForBlock.m create mode 100755 Pods/PromiseKit/objc/Private/xctest.rb create mode 100644 Pods/PromiseKit/objc/PromiseKit.h create mode 100644 Pods/PromiseKit/objc/PromiseKit/Promise+Pause.h create mode 100644 Pods/PromiseKit/objc/PromiseKit/Promise+Until.h create mode 100644 Pods/PromiseKit/objc/PromiseKit/Promise+When.h create mode 100644 Pods/PromiseKit/objc/PromiseKit/Promise.h create mode 100644 Pods/PromiseKit/objc/PromiseKit/fwd.h create mode 100644 Pods/PromiseKit/objc/UIActionSheet+PromiseKit.h create mode 100644 Pods/PromiseKit/objc/UIActionSheet+PromiseKit.m create mode 100644 Pods/PromiseKit/objc/UIAlertView+PromiseKit.h create mode 100644 Pods/PromiseKit/objc/UIAlertView+PromiseKit.m create mode 100644 Pods/PromiseKit/objc/UIView+PromiseKit.h create mode 100644 Pods/PromiseKit/objc/UIView+PromiseKit.m create mode 100644 Pods/PromiseKit/objc/UIViewController+PromiseKit.h create mode 100644 Pods/PromiseKit/objc/UIViewController+PromiseKit.m create mode 100644 Pods/PromiseKit/objc/deprecated/PromiseKit+Foundation.h create mode 100644 Pods/PromiseKit/objc/deprecated/PromiseKit+UIKit.h create mode 100644 Pods/Target Support Files/Pods-BlogTests-CocoaLumberjack/Pods-BlogTests-CocoaLumberjack-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-CocoaLumberjack/Pods-BlogTests-CocoaLumberjack-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-CocoaLumberjack/Pods-BlogTests-CocoaLumberjack-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-CocoaLumberjack/Pods-BlogTests-CocoaLumberjack.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-Mantle/Pods-BlogTests-Mantle-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-Mantle/Pods-BlogTests-Mantle-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-Mantle/Pods-BlogTests-Mantle-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-Mantle/Pods-BlogTests-Mantle.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-OHHTTPStubs/Pods-BlogTests-OHHTTPStubs-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-OHHTTPStubs/Pods-BlogTests-OHHTTPStubs-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-OHHTTPStubs/Pods-BlogTests-OHHTTPStubs-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-OHHTTPStubs/Pods-BlogTests-OHHTTPStubs.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-OMGHTTPURLRQ/Pods-BlogTests-OMGHTTPURLRQ-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-OMGHTTPURLRQ/Pods-BlogTests-OMGHTTPURLRQ-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-OMGHTTPURLRQ/Pods-BlogTests-OMGHTTPURLRQ-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-OMGHTTPURLRQ/Pods-BlogTests-OMGHTTPURLRQ.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-PromiseKit/Pods-BlogTests-PromiseKit-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-PromiseKit/Pods-BlogTests-PromiseKit-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-PromiseKit/Pods-BlogTests-PromiseKit-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-PromiseKit/Pods-BlogTests-PromiseKit.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-YapDatabase/Pods-BlogTests-YapDatabase-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-YapDatabase/Pods-BlogTests-YapDatabase-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-YapDatabase/Pods-BlogTests-YapDatabase-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-YapDatabase/Pods-BlogTests-YapDatabase.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-libextobjc/Pods-BlogTests-libextobjc-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests-libextobjc/Pods-BlogTests-libextobjc-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests-libextobjc/Pods-BlogTests-libextobjc-prefix.pch create mode 100644 Pods/Target Support Files/Pods-BlogTests-libextobjc/Pods-BlogTests-libextobjc.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests-dummy.m create mode 100644 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests-environment.h create mode 100755 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests-resources.sh create mode 100644 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests.release.xcconfig create mode 100644 Pods/Target Support Files/Pods-CocoaLumberjack/Pods-CocoaLumberjack-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-CocoaLumberjack/Pods-CocoaLumberjack-dummy.m create mode 100644 Pods/Target Support Files/Pods-CocoaLumberjack/Pods-CocoaLumberjack-prefix.pch create mode 100644 Pods/Target Support Files/Pods-CocoaLumberjack/Pods-CocoaLumberjack.xcconfig create mode 100644 Pods/Target Support Files/Pods-Mantle/Pods-Mantle-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-Mantle/Pods-Mantle-dummy.m create mode 100644 Pods/Target Support Files/Pods-Mantle/Pods-Mantle-prefix.pch create mode 100644 Pods/Target Support Files/Pods-Mantle/Pods-Mantle.xcconfig create mode 100644 Pods/Target Support Files/Pods-OMGHTTPURLRQ/Pods-OMGHTTPURLRQ-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-OMGHTTPURLRQ/Pods-OMGHTTPURLRQ-dummy.m create mode 100644 Pods/Target Support Files/Pods-OMGHTTPURLRQ/Pods-OMGHTTPURLRQ-prefix.pch create mode 100644 Pods/Target Support Files/Pods-OMGHTTPURLRQ/Pods-OMGHTTPURLRQ.xcconfig create mode 100644 Pods/Target Support Files/Pods-PromiseKit/Pods-PromiseKit-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-PromiseKit/Pods-PromiseKit-dummy.m create mode 100644 Pods/Target Support Files/Pods-PromiseKit/Pods-PromiseKit-prefix.pch create mode 100644 Pods/Target Support Files/Pods-PromiseKit/Pods-PromiseKit.xcconfig create mode 100644 Pods/Target Support Files/Pods-YapDatabase/Pods-YapDatabase-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-YapDatabase/Pods-YapDatabase-dummy.m create mode 100644 Pods/Target Support Files/Pods-YapDatabase/Pods-YapDatabase-prefix.pch create mode 100644 Pods/Target Support Files/Pods-YapDatabase/Pods-YapDatabase.xcconfig create mode 100644 Pods/Target Support Files/Pods-libextobjc/Pods-libextobjc-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-libextobjc/Pods-libextobjc-dummy.m create mode 100644 Pods/Target Support Files/Pods-libextobjc/Pods-libextobjc-prefix.pch create mode 100644 Pods/Target Support Files/Pods-libextobjc/Pods-libextobjc.xcconfig create mode 100644 Pods/Target Support Files/Pods/Pods-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods/Pods-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods/Pods-dummy.m create mode 100644 Pods/Target Support Files/Pods/Pods-environment.h create mode 100755 Pods/Target Support Files/Pods/Pods-resources.sh create mode 100644 Pods/Target Support Files/Pods/Pods.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods/Pods.release.xcconfig create mode 100644 Pods/YapDatabase/LICENSE.txt create mode 100644 Pods/YapDatabase/README.md create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/Internal/YapDatabaseSearchResultsViewPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueuePrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexSetupPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m create mode 100644 Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTypes.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapCache.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapCache.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionDefaults.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionDefaults.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapDatabaseString.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapNull.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapNull.m create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapRowidSet.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapRowidSet.mm create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapTouch.h create mode 100644 Pods/YapDatabase/YapDatabase/Internal/YapTouch.m create mode 100644 Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h create mode 100644 Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m create mode 100644 Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.h create mode 100644 Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.m create mode 100644 Pods/YapDatabase/YapDatabase/Utilities/YapSet.h create mode 100644 Pods/YapDatabase/YapDatabase/Utilities/YapSet.m create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabase.h create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabase.m create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabaseOptions.h create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabaseOptions.m create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h create mode 100644 Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m create mode 100644 Pods/libextobjc/LICENSE.md create mode 100644 Pods/libextobjc/README.md create mode 100644 Pods/libextobjc/extobjc/EXTADT.h create mode 100644 Pods/libextobjc/extobjc/EXTADT.m create mode 100644 Pods/libextobjc/extobjc/EXTConcreteProtocol.h create mode 100644 Pods/libextobjc/extobjc/EXTConcreteProtocol.m create mode 100644 Pods/libextobjc/extobjc/EXTKeyPathCoding.h create mode 100644 Pods/libextobjc/extobjc/EXTNil.h create mode 100644 Pods/libextobjc/extobjc/EXTNil.m create mode 100644 Pods/libextobjc/extobjc/EXTRuntimeExtensions.h create mode 100644 Pods/libextobjc/extobjc/EXTRuntimeExtensions.m create mode 100644 Pods/libextobjc/extobjc/EXTSafeCategory.h create mode 100644 Pods/libextobjc/extobjc/EXTSafeCategory.m create mode 100644 Pods/libextobjc/extobjc/EXTScope.h create mode 100644 Pods/libextobjc/extobjc/EXTScope.m create mode 100644 Pods/libextobjc/extobjc/EXTSelectorChecking.h create mode 100644 Pods/libextobjc/extobjc/EXTSelectorChecking.m create mode 100644 Pods/libextobjc/extobjc/EXTSynthesize.h create mode 100644 Pods/libextobjc/extobjc/NSInvocation+EXT.h create mode 100644 Pods/libextobjc/extobjc/NSInvocation+EXT.m create mode 100644 Pods/libextobjc/extobjc/NSMethodSignature+EXT.h create mode 100644 Pods/libextobjc/extobjc/NSMethodSignature+EXT.m create mode 100644 Pods/libextobjc/extobjc/extobjc.h create mode 100644 Pods/libextobjc/extobjc/metamacros.h diff --git a/Blog.xcodeproj/project.pbxproj b/Blog.xcodeproj/project.pbxproj index d8b7581..f51f84c 100644 --- a/Blog.xcodeproj/project.pbxproj +++ b/Blog.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 30089596C2F733D451A454E8 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1613DC56A86AFA7E50460A37 /* libPods.a */; }; 7B5C4BDF19F2606900667D48 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5C4BDE19F2606900667D48 /* main.m */; }; 7B5C4BE219F2606900667D48 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5C4BE119F2606900667D48 /* AppDelegate.m */; }; 7B5C4BE519F2606900667D48 /* MasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5C4BE419F2606900667D48 /* MasterViewController.m */; }; @@ -15,6 +16,7 @@ 7B5C4BED19F2606900667D48 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B5C4BEC19F2606900667D48 /* Images.xcassets */; }; 7B5C4BF019F2606900667D48 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7B5C4BEE19F2606900667D48 /* LaunchScreen.xib */; }; 7B5C4BFC19F2606900667D48 /* BlogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5C4BFB19F2606900667D48 /* BlogTests.m */; }; + B8B8958B2AA40812EFE04FEF /* libPods-BlogTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C36BC848680D4F831E4DE23 /* libPods-BlogTests.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -28,6 +30,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 1613DC56A86AFA7E50460A37 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; 7B5C4BD919F2606900667D48 /* Blog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Blog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7B5C4BDD19F2606900667D48 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7B5C4BDE19F2606900667D48 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -43,6 +46,11 @@ 7B5C4BF519F2606900667D48 /* BlogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 7B5C4BFA19F2606900667D48 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7B5C4BFB19F2606900667D48 /* BlogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BlogTests.m; sourceTree = ""; }; + 9C36BC848680D4F831E4DE23 /* libPods-BlogTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BlogTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + A2EB178BEF4356711B2710AE /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + AB1234AC662F1A1B7BD87AB0 /* Pods-BlogTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlogTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests.release.xcconfig"; sourceTree = ""; }; + D1F0F9D6D1DB6188AF81A066 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; + DAA4009DDF4B3F5BEEF9CC4C /* Pods-BlogTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlogTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -50,6 +58,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 30089596C2F733D451A454E8 /* libPods.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -57,18 +66,32 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + B8B8958B2AA40812EFE04FEF /* libPods-BlogTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 1A8ACE7C3A5634C63D5770EA /* Pods */ = { + isa = PBXGroup; + children = ( + D1F0F9D6D1DB6188AF81A066 /* Pods.debug.xcconfig */, + A2EB178BEF4356711B2710AE /* Pods.release.xcconfig */, + DAA4009DDF4B3F5BEEF9CC4C /* Pods-BlogTests.debug.xcconfig */, + AB1234AC662F1A1B7BD87AB0 /* Pods-BlogTests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; 7B5C4BD019F2606900667D48 = { isa = PBXGroup; children = ( 7B5C4BDB19F2606900667D48 /* Blog */, 7B5C4BF819F2606900667D48 /* BlogTests */, 7B5C4BDA19F2606900667D48 /* Products */, + 1A8ACE7C3A5634C63D5770EA /* Pods */, + F9CC479BA9A49F1EDD27B0AB /* Frameworks */, ); sourceTree = ""; }; @@ -124,6 +147,15 @@ name = "Supporting Files"; sourceTree = ""; }; + F9CC479BA9A49F1EDD27B0AB /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1613DC56A86AFA7E50460A37 /* libPods.a */, + 9C36BC848680D4F831E4DE23 /* libPods-BlogTests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -131,9 +163,11 @@ isa = PBXNativeTarget; buildConfigurationList = 7B5C4BFF19F2606900667D48 /* Build configuration list for PBXNativeTarget "Blog" */; buildPhases = ( + 8A51BD8ED157654D8B96256C /* Check Pods Manifest.lock */, 7B5C4BD519F2606900667D48 /* Sources */, 7B5C4BD619F2606900667D48 /* Frameworks */, 7B5C4BD719F2606900667D48 /* Resources */, + F9882194979CEEC00C6695C2 /* Copy Pods Resources */, ); buildRules = ( ); @@ -148,9 +182,11 @@ isa = PBXNativeTarget; buildConfigurationList = 7B5C4C0219F2606900667D48 /* Build configuration list for PBXNativeTarget "BlogTests" */; buildPhases = ( + 5869AA845D966F9B4CDB0BB9 /* Check Pods Manifest.lock */, 7B5C4BF119F2606900667D48 /* Sources */, 7B5C4BF219F2606900667D48 /* Frameworks */, 7B5C4BF319F2606900667D48 /* Resources */, + F6692F90CD27F7908A2BD4C6 /* Copy Pods Resources */, ); buildRules = ( ); @@ -220,6 +256,69 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 5869AA845D966F9B4CDB0BB9 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 8A51BD8ED157654D8B96256C /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + F6692F90CD27F7908A2BD4C6 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BlogTests/Pods-BlogTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F9882194979CEEC00C6695C2 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 7B5C4BD519F2606900667D48 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -350,6 +449,7 @@ }; 7B5C4C0019F2606900667D48 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D1F0F9D6D1DB6188AF81A066 /* Pods.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -361,6 +461,7 @@ }; 7B5C4C0119F2606900667D48 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = A2EB178BEF4356711B2710AE /* Pods.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -372,6 +473,7 @@ }; 7B5C4C0319F2606900667D48 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = DAA4009DDF4B3F5BEEF9CC4C /* Pods-BlogTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( @@ -391,6 +493,7 @@ }; 7B5C4C0419F2606900667D48 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = AB1234AC662F1A1B7BD87AB0 /* Pods-BlogTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( @@ -423,6 +526,7 @@ 7B5C4C0119F2606900667D48 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 7B5C4C0219F2606900667D48 /* Build configuration list for PBXNativeTarget "BlogTests" */ = { isa = XCConfigurationList; @@ -431,6 +535,7 @@ 7B5C4C0419F2606900667D48 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/Blog.xcworkspace/contents.xcworkspacedata b/Blog.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..5ff065d --- /dev/null +++ b/Blog.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Blog.xcworkspace/xcshareddata/Blog.xccheckout b/Blog.xcworkspace/xcshareddata/Blog.xccheckout new file mode 100644 index 0000000..4dec877 --- /dev/null +++ b/Blog.xcworkspace/xcshareddata/Blog.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 4DE41D0A-0A5B-4767-8937-4D8B9B787CB1 + IDESourceControlProjectName + Blog + IDESourceControlProjectOriginsDictionary + + 9FE6E9BED9551FE3A3237EE95ECA063A7B5AA7F9 + github.com:samsonjs/samhuri.net-ios.git + + IDESourceControlProjectPath + Blog.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + 9FE6E9BED9551FE3A3237EE95ECA063A7B5AA7F9 + .. + + IDESourceControlProjectURL + github.com:samsonjs/samhuri.net-ios.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + 9FE6E9BED9551FE3A3237EE95ECA063A7B5AA7F9 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 9FE6E9BED9551FE3A3237EE95ECA063A7B5AA7F9 + IDESourceControlWCCName + Blog + + + + diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..0e6a7e5 --- /dev/null +++ b/Podfile @@ -0,0 +1,16 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '6.0' + +source 'https://github.com/CocoaPods/Specs.git' + +pod 'Mantle' +pod 'PromiseKit' +pod 'YapDatabase' +pod 'libextobjc' + +# target 'Blog' do +# end + +target 'BlogTests' do + pod 'OHHTTPStubs' +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..6edf37f --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,115 @@ +PODS: + - CocoaLumberjack (1.9.2): + - CocoaLumberjack/Extensions + - CocoaLumberjack/Core (1.9.2) + - CocoaLumberjack/Extensions (1.9.2): + - CocoaLumberjack/Core + - libextobjc (0.4): + - libextobjc/EXTADT + - libextobjc/EXTConcreteProtocol + - libextobjc/EXTKeyPathCoding + - libextobjc/EXTNil + - libextobjc/EXTSafeCategory + - libextobjc/EXTScope + - libextobjc/EXTSelectorChecking + - libextobjc/EXTSynthesize + - libextobjc/NSInvocation+EXT + - libextobjc/NSMethodSignature+EXT + - libextobjc/RuntimeExtensions + - libextobjc/UmbrellaHeader + - libextobjc/EXTADT (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTConcreteProtocol (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTKeyPathCoding (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTNil (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTSafeCategory (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTScope (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTSelectorChecking (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/EXTSynthesize (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/NSInvocation+EXT (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/NSMethodSignature+EXT (0.4): + - libextobjc/RuntimeExtensions + - libextobjc/RuntimeExtensions (0.4) + - libextobjc/UmbrellaHeader (0.4) + - Mantle (1.5.1): + - Mantle/extobjc + - Mantle/extobjc (1.5.1) + - OHHTTPStubs (3.1.6): + - OHHTTPStubs/Core + - OHHTTPStubs/Core (3.1.6) + - OMGHTTPURLRQ (2.1): + - OMGHTTPURLRQ/FormURLEncode + - OMGHTTPURLRQ/RQ + - OMGHTTPURLRQ/UserAgent + - OMGHTTPURLRQ/FormURLEncode (2.1): + - OMGHTTPURLRQ/FormURLEncode + - OMGHTTPURLRQ/UserAgent + - OMGHTTPURLRQ/RQ (2.1): + - OMGHTTPURLRQ/FormURLEncode + - OMGHTTPURLRQ/UserAgent + - OMGHTTPURLRQ/UserAgent (2.1): + - OMGHTTPURLRQ/FormURLEncode + - OMGHTTPURLRQ/UserAgent + - PromiseKit (1.0): + - PromiseKit/NSNotificationCenter + - PromiseKit/NSURLConnection + - PromiseKit/Pause + - PromiseKit/UIActionSheet + - PromiseKit/UIAlertView + - PromiseKit/UIView + - PromiseKit/UIViewController + - PromiseKit/Until + - PromiseKit/When + - PromiseKit/NSNotificationCenter (1.0): + - PromiseKit/Promise + - PromiseKit/NSURLConnection (1.0): + - OMGHTTPURLRQ + - PromiseKit/Promise + - PromiseKit/Pause (1.0): + - PromiseKit/Promise + - PromiseKit/Promise (1.0) + - PromiseKit/UIActionSheet (1.0): + - PromiseKit/Promise + - PromiseKit/UIAlertView (1.0): + - PromiseKit/Promise + - PromiseKit/UIView (1.0): + - PromiseKit/Promise + - PromiseKit/UIViewController (1.0): + - PromiseKit/Promise + - PromiseKit/Until (1.0): + - PromiseKit/Promise + - PromiseKit/When + - PromiseKit/When (1.0): + - PromiseKit/Promise + - YapDatabase (2.5.2): + - YapDatabase/standard + - YapDatabase/common (2.5.2): + - CocoaLumberjack (~> 1) + - YapDatabase/standard (2.5.2): + - YapDatabase/common + +DEPENDENCIES: + - libextobjc + - Mantle + - OHHTTPStubs + - PromiseKit + - YapDatabase + +SPEC CHECKSUMS: + CocoaLumberjack: 205769c032b5fef85b92472046bcc8b7e7c8a817 + libextobjc: ba42e4111f433273a886cd54f0ddaddb7f62f82f + Mantle: d7c5ac734579ec751c58fecbf56189853056c58c + OHHTTPStubs: 6781373b69e0a67b27239799f11764d0fbefac55 + OMGHTTPURLRQ: 16564bcee86d8dfa298b65cdf60015c3065f67df + PromiseKit: 3a8eb40bb66c8f74ebd629f03ad8b0d5581a744c + YapDatabase: 50f763e49374c38025e8255b4c468d26d81b1048 + +COCOAPODS: 0.34.2 diff --git a/Pods/CocoaLumberjack/LICENSE.txt b/Pods/CocoaLumberjack/LICENSE.txt new file mode 100644 index 0000000..66a942c --- /dev/null +++ b/Pods/CocoaLumberjack/LICENSE.txt @@ -0,0 +1,18 @@ +Software License Agreement (BSD License) + +Copyright (c) 2010, Deusty, LLC +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Neither the name of Deusty nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of Deusty, LLC. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.h b/Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.h new file mode 100644 index 0000000..53dc6b0 --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.h @@ -0,0 +1,23 @@ +// +// DDASLLogCapture.h +// Lumberjack +// +// Created by Dario Ahdoot on 3/17/14. +// +// + +#import "DDASLLogger.h" + +@protocol DDLogger; + +@interface DDASLLogCapture : NSObject + ++ (void)start; ++ (void)stop; + +// Default log level: LOG_LEVEL_VERBOSE (i.e. capture all ASL messages). ++ (int)captureLogLevel; ++ (void)setCaptureLogLevel:(int)LOG_LEVEL_XXX; + +@end + diff --git a/Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.m b/Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.m new file mode 100644 index 0000000..52bfc1b --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDASLLogCapture.m @@ -0,0 +1,188 @@ +// +// DDASLLogCapture.m +// Lumberjack +// +// Created by Dario Ahdoot on 3/17/14. +// +// + +#import "DDASLLogCapture.h" +#import "DDLog.h" + +#include +#include +#include +#include + +static BOOL _cancel = YES; +static int _captureLogLevel = LOG_LEVEL_VERBOSE; + +@implementation DDASLLogCapture + ++ (void)start +{ + // Ignore subsequent calls + if (!_cancel) + return; + + _cancel = NO; + + dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) + { + [DDASLLogCapture captureAslLogs]; + }); +} + ++ (void)stop +{ + _cancel = YES; +} + ++ (int)captureLogLevel +{ + return _captureLogLevel; +} + ++ (void)setCaptureLogLevel:(int)LOG_LEVEL_XXX +{ + _captureLogLevel = LOG_LEVEL_XXX; +} + +# pragma mark - Private methods + ++ (void)configureAslQuery:(aslmsg)query +{ + const char param[] = "7"; // ASL_LEVEL_DEBUG, which is everything. We'll rely on regular DDlog log level to filter + asl_set_query(query, ASL_KEY_LEVEL, param, ASL_QUERY_OP_LESS_EQUAL | ASL_QUERY_OP_NUMERIC); + +#if !TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR + int processId = [[NSProcessInfo processInfo] processIdentifier]; + char pid[16]; + sprintf(pid, "%d", processId); + asl_set_query(query, ASL_KEY_PID, pid, ASL_QUERY_OP_EQUAL | ASL_QUERY_OP_NUMERIC); +#endif +} + ++ (void)aslMessageRecieved:(aslmsg)msg +{ + // NSString * sender = [NSString stringWithCString:asl_get(msg, ASL_KEY_SENDER) encoding:NSUTF8StringEncoding]; + NSString * message = [NSString stringWithCString:asl_get(msg, ASL_KEY_MSG) encoding:NSUTF8StringEncoding]; + NSString * level = [NSString stringWithCString:asl_get(msg, ASL_KEY_LEVEL) encoding:NSUTF8StringEncoding]; + NSString * secondsStr = [NSString stringWithCString:asl_get(msg, ASL_KEY_TIME) encoding:NSUTF8StringEncoding]; + NSString * nanoStr = [NSString stringWithCString:asl_get(msg, ASL_KEY_TIME_NSEC) encoding:NSUTF8StringEncoding]; + + NSTimeInterval seconds = [secondsStr doubleValue]; + NSTimeInterval nanoSeconds = [nanoStr doubleValue]; + NSTimeInterval totalSeconds = seconds + (nanoSeconds / 1e9); + + NSDate * timeStamp = [NSDate dateWithTimeIntervalSince1970:totalSeconds]; + + int flag; + BOOL async; + switch([level intValue]) + { + // By default all NSLog's with a ASL_LEVEL_WARNING level + case ASL_LEVEL_EMERG : + case ASL_LEVEL_ALERT : + case ASL_LEVEL_CRIT : flag = LOG_FLAG_ERROR; async = LOG_ASYNC_ERROR; break; + case ASL_LEVEL_ERR : flag = LOG_FLAG_WARN; async = LOG_ASYNC_WARN; break; + case ASL_LEVEL_WARNING : flag = LOG_FLAG_INFO; async = LOG_ASYNC_INFO; break; + case ASL_LEVEL_NOTICE : flag = LOG_FLAG_DEBUG; async = LOG_ASYNC_DEBUG; break; + case ASL_LEVEL_INFO : + case ASL_LEVEL_DEBUG : + default : flag = LOG_FLAG_VERBOSE; async = LOG_ASYNC_VERBOSE; break; + } + + if (!(_captureLogLevel & flag)) + return; + + DDLogMessage * logMessage = [[DDLogMessage alloc]initWithLogMsg:message + level:_captureLogLevel + flag:flag + context:0 + file:"DDASLLogCapture" + function:0 + line:0 + tag:nil + options:0 + timestamp:timeStamp]; + + [DDLog log:async message:logMessage]; +} + ++ (void)captureAslLogs +{ + @autoreleasepool + { + /* + We use ASL_KEY_MSG_ID to see each message once, but there's no + obvious way to get the "next" ID. To bootstrap the process, we'll + search by timestamp until we've seen a message. + */ + + struct timeval timeval = { .tv_sec = 0 }; + gettimeofday(&timeval, NULL); + unsigned long long startTime = timeval.tv_sec; + __block unsigned long long lastSeenID = 0; + + /* + syslogd posts kNotifyASLDBUpdate (com.apple.system.logger.message) + through the notify API when it saves messages to the ASL database. + There is some coalescing - currently it is sent at most twice per + second - but there is no documented guarantee about this. In any + case, there may be multiple messages per notification. + + Notify notifications don't carry any payload, so we need to search + for the messages. + */ + int notifyToken = 0; // Can be used to unregister with notify_cancel(). + notify_register_dispatch(kNotifyASLDBUpdate, ¬ifyToken, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^(int token) + { + // At least one message has been posted; build a search query. + @autoreleasepool + { + aslmsg query = asl_new(ASL_TYPE_QUERY); + char stringValue[64]; + if (lastSeenID > 0) + { + snprintf(stringValue, sizeof stringValue, "%llu", lastSeenID); + asl_set_query(query, ASL_KEY_MSG_ID, stringValue, ASL_QUERY_OP_GREATER | ASL_QUERY_OP_NUMERIC); + } + else + { + snprintf(stringValue, sizeof stringValue, "%llu", startTime); + asl_set_query(query, ASL_KEY_TIME, stringValue, ASL_QUERY_OP_GREATER_EQUAL | ASL_QUERY_OP_NUMERIC); + } + [DDASLLogCapture configureAslQuery:query]; + + // Iterate over new messages. + aslmsg msg; + aslresponse response = asl_search(NULL, query); +#if defined(__IPHONE_8_0) || defined(__MAC_10_10) + while ((msg = asl_next(response))) +#else + while ((msg = aslresponse_next(response))) +#endif + { + [DDASLLogCapture aslMessageRecieved:msg]; + + // Keep track of which messages we've seen. + lastSeenID = atoll(asl_get(msg, ASL_KEY_MSG_ID)); + } +#if defined(__IPHONE_8_0) || defined(__MAC_10_10) + asl_release(response); +#else + aslresponse_free(response); +#endif + if(_cancel) + { + notify_cancel(notifyToken); + return; + } + free(query); + } + }); + } +} + +@end \ No newline at end of file diff --git a/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h b/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h new file mode 100755 index 0000000..a55eb6f --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h @@ -0,0 +1,37 @@ +#import + +#import "DDLog.h" + +/** + * Welcome to Cocoa Lumberjack! + * + * The project page has a wealth of documentation if you have any questions. + * https://github.com/CocoaLumberjack/CocoaLumberjack + * + * If you're new to the project you may wish to read the "Getting Started" wiki. + * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted + * + * + * This class provides a logger for the Apple System Log facility. + * + * As described in the "Getting Started" page, + * the traditional NSLog() function directs it's output to two places: + * + * - Apple System Log + * - StdErr (if stderr is a TTY) so log statements show up in Xcode console + * + * To duplicate NSLog() functionality you can simply add this logger and a tty logger. + * However, if you instead choose to use file logging (for faster performance), + * you may choose to use a file logger and a tty logger. +**/ + +@interface DDASLLogger : DDAbstractLogger + ++ (instancetype)sharedInstance; + +// Inherited from DDAbstractLogger + +// - (id )logFormatter; +// - (void)setLogFormatter:(id )formatter; + +@end diff --git a/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m b/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m new file mode 100755 index 0000000..020acb2 --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m @@ -0,0 +1,95 @@ +#import "DDASLLogger.h" +#import +#import + +/** + * Welcome to Cocoa Lumberjack! + * + * The project page has a wealth of documentation if you have any questions. + * https://github.com/CocoaLumberjack/CocoaLumberjack + * + * If you're new to the project you may wish to read the "Getting Started" wiki. + * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted +**/ + +#if ! __has_feature(objc_arc) +#error This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static DDASLLogger *sharedInstance; + +@implementation DDASLLogger +{ + aslclient client; +} + ++ (instancetype)sharedInstance +{ + static dispatch_once_t DDASLLoggerOnceToken; + dispatch_once(&DDASLLoggerOnceToken, ^{ + sharedInstance = [[[self class] alloc] init]; + }); + + return sharedInstance; +} + +- (id)init +{ + if (sharedInstance != nil) + { + return nil; + } + + if ((self = [super init])) + { + // A default asl client is provided for the main thread, + // but background threads need to create their own client. + + client = asl_open(NULL, "com.apple.console", 0); + } + return self; +} + +- (void)logMessage:(DDLogMessage *)logMessage +{ + // Skip captured log messages. + if (strcmp(logMessage->file, "DDASLLogCapture") == 0) + return; + + NSString *logMsg = logMessage->logMsg; + + if (formatter) + { + logMsg = [formatter formatLogMessage:logMessage]; + } + + if (logMsg) + { + const char *msg = [logMsg UTF8String]; + + int aslLogLevel; + switch (logMessage->logFlag) + { + // Note: By default ASL will filter anything above level 5 (Notice). + // So our mappings shouldn't go above that level. + case LOG_FLAG_ERROR : aslLogLevel = ASL_LEVEL_CRIT; break; + case LOG_FLAG_WARN : aslLogLevel = ASL_LEVEL_ERR; break; + case LOG_FLAG_INFO : aslLogLevel = ASL_LEVEL_WARNING; break; // Regular NSLog's level + case LOG_FLAG_DEBUG : + case LOG_FLAG_VERBOSE : + default : aslLogLevel = ASL_LEVEL_NOTICE; break; + } + + aslmsg m = asl_new(ASL_TYPE_MSG); + asl_set(m, ASL_KEY_READ_UID, "501"); + asl_log(client, m, aslLogLevel, "%s", msg); + asl_free(m); + } +} + +- (NSString *)loggerName +{ + return @"cocoa.lumberjack.aslLogger"; +} + +@end diff --git a/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h b/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h new file mode 100644 index 0000000..4e0c33c --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h @@ -0,0 +1,102 @@ +#import + +#import "DDLog.h" + +/** + * Welcome to Cocoa Lumberjack! + * + * The project page has a wealth of documentation if you have any questions. + * https://github.com/CocoaLumberjack/CocoaLumberjack + * + * If you're new to the project you may wish to read the "Getting Started" wiki. + * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted + * + * + * This class provides an abstract implementation of a database logger. + * + * That is, it provides the base implementation for a database logger to build atop of. + * All that is needed for a concrete database logger is to extend this class + * and override the methods in the implementation file that are prefixed with "db_". +**/ + +@interface DDAbstractDatabaseLogger : DDAbstractLogger { +@protected + NSUInteger saveThreshold; + NSTimeInterval saveInterval; + NSTimeInterval maxAge; + NSTimeInterval deleteInterval; + BOOL deleteOnEverySave; + + BOOL saveTimerSuspended; + NSUInteger unsavedCount; + dispatch_time_t unsavedTime; + dispatch_source_t saveTimer; + dispatch_time_t lastDeleteTime; + dispatch_source_t deleteTimer; +} + +/** + * Specifies how often to save the data to disk. + * Since saving is an expensive operation (disk io) it is not done after every log statement. + * These properties allow you to configure how/when the logger saves to disk. + * + * A save is done when either (whichever happens first): + * + * - The number of unsaved log entries reaches saveThreshold + * - The amount of time since the oldest unsaved log entry was created reaches saveInterval + * + * You can optionally disable the saveThreshold by setting it to zero. + * If you disable the saveThreshold you are entirely dependent on the saveInterval. + * + * You can optionally disable the saveInterval by setting it to zero (or a negative value). + * If you disable the saveInterval you are entirely dependent on the saveThreshold. + * + * It's not wise to disable both saveThreshold and saveInterval. + * + * The default saveThreshold is 500. + * The default saveInterval is 60 seconds. +**/ +@property (assign, readwrite) NSUInteger saveThreshold; +@property (assign, readwrite) NSTimeInterval saveInterval; + +/** + * It is likely you don't want the log entries to persist forever. + * Doing so would allow the database to grow infinitely large over time. + * + * The maxAge property provides a way to specify how old a log statement can get + * before it should get deleted from the database. + * + * The deleteInterval specifies how often to sweep for old log entries. + * Since deleting is an expensive operation (disk io) is is done on a fixed interval. + * + * An alternative to the deleteInterval is the deleteOnEverySave option. + * This specifies that old log entries should be deleted during every save operation. + * + * You can optionally disable the maxAge by setting it to zero (or a negative value). + * If you disable the maxAge then old log statements are not deleted. + * + * You can optionally disable the deleteInterval by setting it to zero (or a negative value). + * + * If you disable both deleteInterval and deleteOnEverySave then old log statements are not deleted. + * + * It's not wise to enable both deleteInterval and deleteOnEverySave. + * + * The default maxAge is 7 days. + * The default deleteInterval is 5 minutes. + * The default deleteOnEverySave is NO. +**/ +@property (assign, readwrite) NSTimeInterval maxAge; +@property (assign, readwrite) NSTimeInterval deleteInterval; +@property (assign, readwrite) BOOL deleteOnEverySave; + +/** + * Forces a save of any pending log entries (flushes log entries to disk). +**/ +- (void)savePendingLogEntries; + +/** + * Removes any log entries that are older than maxAge. +**/ +- (void)deleteOldLogEntries; + +@end diff --git a/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m b/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m new file mode 100644 index 0000000..05fcbcb --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m @@ -0,0 +1,727 @@ +#import "DDAbstractDatabaseLogger.h" +#import + +/** + * Welcome to Cocoa Lumberjack! + * + * The project page has a wealth of documentation if you have any questions. + * https://github.com/CocoaLumberjack/CocoaLumberjack + * + * If you're new to the project you may wish to read the "Getting Started" wiki. + * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted +**/ + +#if ! __has_feature(objc_arc) +#error This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +@interface DDAbstractDatabaseLogger () +- (void)destroySaveTimer; +- (void)destroyDeleteTimer; +@end + +#pragma mark - + +@implementation DDAbstractDatabaseLogger + +- (id)init +{ + if ((self = [super init])) + { + saveThreshold = 500; + saveInterval = 60; // 60 seconds + maxAge = (60 * 60 * 24 * 7); // 7 days + deleteInterval = (60 * 5); // 5 minutes + } + return self; +} + +- (void)dealloc +{ + [self destroySaveTimer]; + [self destroyDeleteTimer]; + +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Override Me +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (BOOL)db_log:(DDLogMessage *)logMessage +{ + // Override me and add your implementation. + // + // Return YES if an item was added to the buffer. + // Return NO if the logMessage was ignored. + + return NO; +} + +- (void)db_save +{ + // Override me and add your implementation. +} + +- (void)db_delete +{ + // Override me and add your implementation. +} + +- (void)db_saveAndDelete +{ + // Override me and add your implementation. +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Private API +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (void)performSaveAndSuspendSaveTimer +{ + if (unsavedCount > 0) + { + if (deleteOnEverySave) + [self db_saveAndDelete]; + else + [self db_save]; + } + + unsavedCount = 0; + unsavedTime = 0; + + if (saveTimer && !saveTimerSuspended) + { + dispatch_suspend(saveTimer); + saveTimerSuspended = YES; + } +} + +- (void)performDelete +{ + if (maxAge > 0.0) + { + [self db_delete]; + + lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Timers +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (void)destroySaveTimer +{ + if (saveTimer) + { + dispatch_source_cancel(saveTimer); + if (saveTimerSuspended) + { + // Must resume a timer before releasing it (or it will crash) + dispatch_resume(saveTimer); + saveTimerSuspended = NO; + } + #if !OS_OBJECT_USE_OBJC + dispatch_release(saveTimer); + #endif + saveTimer = NULL; + } +} + +- (void)updateAndResumeSaveTimer +{ + if ((saveTimer != NULL) && (saveInterval > 0.0) && (unsavedTime > 0.0)) + { + uint64_t interval = (uint64_t)(saveInterval * NSEC_PER_SEC); + dispatch_time_t startTime = dispatch_time(unsavedTime, interval); + + dispatch_source_set_timer(saveTimer, startTime, interval, 1.0); + + if (saveTimerSuspended) + { + dispatch_resume(saveTimer); + saveTimerSuspended = NO; + } + } +} + +- (void)createSuspendedSaveTimer +{ + if ((saveTimer == NULL) && (saveInterval > 0.0)) + { + saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue); + + dispatch_source_set_event_handler(saveTimer, ^{ @autoreleasepool { + + [self performSaveAndSuspendSaveTimer]; + + }}); + + saveTimerSuspended = YES; + } +} + +- (void)destroyDeleteTimer +{ + if (deleteTimer) + { + dispatch_source_cancel(deleteTimer); + #if !OS_OBJECT_USE_OBJC + dispatch_release(deleteTimer); + #endif + deleteTimer = NULL; + } +} + +- (void)updateDeleteTimer +{ + if ((deleteTimer != NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) + { + uint64_t interval = (uint64_t)(deleteInterval * NSEC_PER_SEC); + dispatch_time_t startTime; + + if (lastDeleteTime > 0) + startTime = dispatch_time(lastDeleteTime, interval); + else + startTime = dispatch_time(DISPATCH_TIME_NOW, interval); + + dispatch_source_set_timer(deleteTimer, startTime, interval, 1.0); + } +} + +- (void)createAndStartDeleteTimer +{ + if ((deleteTimer == NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) + { + deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue); + + if (deleteTimer != NULL) { + dispatch_source_set_event_handler(deleteTimer, ^{ @autoreleasepool { + + [self performDelete]; + + }}); + + [self updateDeleteTimer]; + + if (deleteTimer != NULL) dispatch_resume(deleteTimer); + } + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Configuration +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (NSUInteger)saveThreshold +{ + // The design of this method is taken from the DDAbstractLogger implementation. + // For extensive documentation please refer to the DDAbstractLogger implementation. + + // Note: The internal implementation MUST access the colorsEnabled variable directly, + // This method is designed explicitly for external access. + // + // Using "self." syntax to go through this method will cause immediate deadlock. + // This is the intended result. Fix it by accessing the ivar directly. + // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. + + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + + __block NSUInteger result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerQueue, ^{ + result = saveThreshold; + }); + }); + + return result; +} + +- (void)setSaveThreshold:(NSUInteger)threshold +{ + dispatch_block_t block = ^{ @autoreleasepool { + + if (saveThreshold != threshold) + { + saveThreshold = threshold; + + // Since the saveThreshold has changed, + // we check to see if the current unsavedCount has surpassed the new threshold. + // + // If it has, we immediately save the log. + + if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) + { + [self performSaveAndSuspendSaveTimer]; + } + } + }}; + + // The design of the setter logic below is taken from the DDAbstractLogger implementation. + // For documentation please refer to the DDAbstractLogger implementation. + + if ([self isOnInternalLoggerQueue]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerQueue, block); + }); + } +} + +- (NSTimeInterval)saveInterval +{ + // The design of this method is taken from the DDAbstractLogger implementation. + // For extensive documentation please refer to the DDAbstractLogger implementation. + + // Note: The internal implementation MUST access the colorsEnabled variable directly, + // This method is designed explicitly for external access. + // + // Using "self." syntax to go through this method will cause immediate deadlock. + // This is the intended result. Fix it by accessing the ivar directly. + // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. + + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + + __block NSTimeInterval result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerQueue, ^{ + result = saveInterval; + }); + }); + + return result; +} + +- (void)setSaveInterval:(NSTimeInterval)interval +{ + dispatch_block_t block = ^{ @autoreleasepool { + + // C99 recommended floating point comparison macro + // Read: isLessThanOrGreaterThan(floatA, floatB) + + if (/* saveInterval != interval */ islessgreater(saveInterval, interval)) + { + saveInterval = interval; + + // There are several cases we need to handle here. + // + // 1. If the saveInterval was previously enabled and it just got disabled, + // then we need to stop the saveTimer. (And we might as well release it.) + // + // 2. If the saveInterval was previously disabled and it just got enabled, + // then we need to setup the saveTimer. (Plus we might need to do an immediate save.) + // + // 3. If the saveInterval increased, then we need to reset the timer so that it fires at the later date. + // + // 4. If the saveInterval decreased, then we need to reset the timer so that it fires at an earlier date. + // (Plus we might need to do an immediate save.) + + if (saveInterval > 0.0) + { + if (saveTimer == NULL) + { + // Handles #2 + // + // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, + // if a save is needed the timer will fire immediately. + + [self createSuspendedSaveTimer]; + [self updateAndResumeSaveTimer]; + } + else + { + // Handles #3 + // Handles #4 + // + // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, + // if a save is needed the timer will fire immediately. + + [self updateAndResumeSaveTimer]; + } + } + else if (saveTimer) + { + // Handles #1 + + [self destroySaveTimer]; + } + } + }}; + + // The design of the setter logic below is taken from the DDAbstractLogger implementation. + // For documentation please refer to the DDAbstractLogger implementation. + + if ([self isOnInternalLoggerQueue]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerQueue, block); + }); + } +} + +- (NSTimeInterval)maxAge +{ + // The design of this method is taken from the DDAbstractLogger implementation. + // For extensive documentation please refer to the DDAbstractLogger implementation. + + // Note: The internal implementation MUST access the colorsEnabled variable directly, + // This method is designed explicitly for external access. + // + // Using "self." syntax to go through this method will cause immediate deadlock. + // This is the intended result. Fix it by accessing the ivar directly. + // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. + + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + + __block NSTimeInterval result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerQueue, ^{ + result = maxAge; + }); + }); + + return result; +} + +- (void)setMaxAge:(NSTimeInterval)interval +{ + dispatch_block_t block = ^{ @autoreleasepool { + + // C99 recommended floating point comparison macro + // Read: isLessThanOrGreaterThan(floatA, floatB) + + if (/* maxAge != interval */ islessgreater(maxAge, interval)) + { + NSTimeInterval oldMaxAge = maxAge; + NSTimeInterval newMaxAge = interval; + + maxAge = interval; + + // There are several cases we need to handle here. + // + // 1. If the maxAge was previously enabled and it just got disabled, + // then we need to stop the deleteTimer. (And we might as well release it.) + // + // 2. If the maxAge was previously disabled and it just got enabled, + // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) + // + // 3. If the maxAge was increased, + // then we don't need to do anything. + // + // 4. If the maxAge was decreased, + // then we should do an immediate delete. + + BOOL shouldDeleteNow = NO; + + if (oldMaxAge > 0.0) + { + if (newMaxAge <= 0.0) + { + // Handles #1 + + [self destroyDeleteTimer]; + } + else if (oldMaxAge > newMaxAge) + { + // Handles #4 + shouldDeleteNow = YES; + } + } + else if (newMaxAge > 0.0) + { + // Handles #2 + shouldDeleteNow = YES; + } + + if (shouldDeleteNow) + { + [self performDelete]; + + if (deleteTimer) + [self updateDeleteTimer]; + else + [self createAndStartDeleteTimer]; + } + } + }}; + + // The design of the setter logic below is taken from the DDAbstractLogger implementation. + // For documentation please refer to the DDAbstractLogger implementation. + + if ([self isOnInternalLoggerQueue]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerQueue, block); + }); + } +} + +- (NSTimeInterval)deleteInterval +{ + // The design of this method is taken from the DDAbstractLogger implementation. + // For extensive documentation please refer to the DDAbstractLogger implementation. + + // Note: The internal implementation MUST access the colorsEnabled variable directly, + // This method is designed explicitly for external access. + // + // Using "self." syntax to go through this method will cause immediate deadlock. + // This is the intended result. Fix it by accessing the ivar directly. + // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. + + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + + __block NSTimeInterval result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerQueue, ^{ + result = deleteInterval; + }); + }); + + return result; +} + +- (void)setDeleteInterval:(NSTimeInterval)interval +{ + dispatch_block_t block = ^{ @autoreleasepool { + + // C99 recommended floating point comparison macro + // Read: isLessThanOrGreaterThan(floatA, floatB) + + if (/* deleteInterval != interval */ islessgreater(deleteInterval, interval)) + { + deleteInterval = interval; + + // There are several cases we need to handle here. + // + // 1. If the deleteInterval was previously enabled and it just got disabled, + // then we need to stop the deleteTimer. (And we might as well release it.) + // + // 2. If the deleteInterval was previously disabled and it just got enabled, + // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) + // + // 3. If the deleteInterval increased, then we need to reset the timer so that it fires at the later date. + // + // 4. If the deleteInterval decreased, then we need to reset the timer so that it fires at an earlier date. + // (Plus we might need to do an immediate delete.) + + if (deleteInterval > 0.0) + { + if (deleteTimer == NULL) + { + // Handles #2 + // + // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, + // if a delete is needed the timer will fire immediately. + + [self createAndStartDeleteTimer]; + } + else + { + // Handles #3 + // Handles #4 + // + // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, + // if a save is needed the timer will fire immediately. + + [self updateDeleteTimer]; + } + } + else if (deleteTimer) + { + // Handles #1 + + [self destroyDeleteTimer]; + } + } + }}; + + // The design of the setter logic below is taken from the DDAbstractLogger implementation. + // For documentation please refer to the DDAbstractLogger implementation. + + if ([self isOnInternalLoggerQueue]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerQueue, block); + }); + } +} + +- (BOOL)deleteOnEverySave +{ + // The design of this method is taken from the DDAbstractLogger implementation. + // For extensive documentation please refer to the DDAbstractLogger implementation. + + // Note: The internal implementation MUST access the colorsEnabled variable directly, + // This method is designed explicitly for external access. + // + // Using "self." syntax to go through this method will cause immediate deadlock. + // This is the intended result. Fix it by accessing the ivar directly. + // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. + + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + + __block BOOL result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerQueue, ^{ + result = deleteOnEverySave; + }); + }); + + return result; +} + +- (void)setDeleteOnEverySave:(BOOL)flag +{ + dispatch_block_t block = ^{ + + deleteOnEverySave = flag; + }; + + // The design of the setter logic below is taken from the DDAbstractLogger implementation. + // For documentation please refer to the DDAbstractLogger implementation. + + if ([self isOnInternalLoggerQueue]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; + NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerQueue, block); + }); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Public API +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (void)savePendingLogEntries +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [self performSaveAndSuspendSaveTimer]; + }}; + + if ([self isOnInternalLoggerQueue]) + block(); + else + dispatch_async(loggerQueue, block); +} + +- (void)deleteOldLogEntries +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [self performDelete]; + }}; + + if ([self isOnInternalLoggerQueue]) + block(); + else + dispatch_async(loggerQueue, block); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark DDLogger +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (void)didAddLogger +{ + // If you override me be sure to invoke [super didAddLogger]; + + [self createSuspendedSaveTimer]; + + [self createAndStartDeleteTimer]; +} + +- (void)willRemoveLogger +{ + // If you override me be sure to invoke [super willRemoveLogger]; + + [self performSaveAndSuspendSaveTimer]; + + [self destroySaveTimer]; + [self destroyDeleteTimer]; +} + +- (void)logMessage:(DDLogMessage *)logMessage +{ + if ([self db_log:logMessage]) + { + BOOL firstUnsavedEntry = (++unsavedCount == 1); + + if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) + { + [self performSaveAndSuspendSaveTimer]; + } + else if (firstUnsavedEntry) + { + unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0); + [self updateAndResumeSaveTimer]; + } + } +} + +- (void)flush +{ + // This method is invoked by DDLog's flushLog method. + // + // It is called automatically when the application quits, + // or if the developer invokes DDLog's flushLog method prior to crashing or something. + + [self performSaveAndSuspendSaveTimer]; +} + +@end diff --git a/Pods/CocoaLumberjack/Lumberjack/DDAssert.h b/Pods/CocoaLumberjack/Lumberjack/DDAssert.h new file mode 100644 index 0000000..4bad8e2 --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDAssert.h @@ -0,0 +1,16 @@ +// +// DDAssert.h +// CocoaLumberjack +// +// Created by Ernesto Rivera on 2014/07/07. +// +// + +#import "DDLog.h" + +#define DDAssert(condition, frmt, ...) if (!(condition)) { \ + NSString * description = [NSString stringWithFormat:frmt, ##__VA_ARGS__]; \ + DDLogError(@"%@", description); \ + NSAssert(NO, description); } +#define DDAssertCondition(condition) DDAssert(condition, @"Condition not satisfied: %s", #condition) + diff --git a/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h b/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h new file mode 100644 index 0000000..b319c51 --- /dev/null +++ b/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h @@ -0,0 +1,406 @@ +#import +#import "DDLog.h" + +@class DDLogFileInfo; + +/** + * Welcome to Cocoa Lumberjack! + * + * The project page has a wealth of documentation if you have any questions. + * https://github.com/CocoaLumberjack/CocoaLumberjack + * + * If you're new to the project you may wish to read the "Getting Started" wiki. + * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted + * + * + * This class provides a logger to write log statements to a file. +**/ + + +// Default configuration and safety/sanity values. +// +// maximumFileSize -> DEFAULT_LOG_MAX_FILE_SIZE +// rollingFrequency -> DEFAULT_LOG_ROLLING_FREQUENCY +// maximumNumberOfLogFiles -> DEFAULT_LOG_MAX_NUM_LOG_FILES +// logFilesDiskQuota -> DEFAULT_LOG_FILES_DISK_QUOTA +// +// You should carefully consider the proper configuration values for your application. + +#define DEFAULT_LOG_MAX_FILE_SIZE (1024 * 1024) // 1 MB +#define DEFAULT_LOG_ROLLING_FREQUENCY (60 * 60 * 24) // 24 Hours +#define DEFAULT_LOG_MAX_NUM_LOG_FILES (5) // 5 Files +#define DEFAULT_LOG_FILES_DISK_QUOTA (20 * 1024 * 1024) // 20 MB + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// The LogFileManager protocol is designed to allow you to control all aspects of your log files. +// +// The primary purpose of this is to allow you to do something with the log files after they have been rolled. +// Perhaps you want to compress them to save disk space. +// Perhaps you want to upload them to an FTP server. +// Perhaps you want to run some analytics on the file. +// +// A default LogFileManager is, of course, provided. +// The default LogFileManager simply deletes old log files according to the maximumNumberOfLogFiles property. +// +// This protocol provides various methods to fetch the list of log files. +// +// There are two variants: sorted and unsorted. +// If sorting is not necessary, the unsorted variant is obviously faster. +// The sorted variant will return an array sorted by when the log files were created, +// with the most recently created log file at index 0, and the oldest log file at the end of the array. +// +// You can fetch only the log file paths (full path including name), log file names (name only), +// or an array of DDLogFileInfo objects. +// The DDLogFileInfo class is documented below, and provides a handy wrapper that +// gives you easy access to various file attributes such as the creation date or the file size. + +@protocol DDLogFileManager +@required + +// Public properties + +/** + * The maximum number of archived log files to keep on disk. + * For example, if this property is set to 3, + * then the LogFileManager will only keep 3 archived log files (plus the current active log file) on disk. + * Once the active log file is rolled/archived, then the oldest of the existing 3 rolled/archived log files is deleted. + * + * You may optionally disable this option by setting it to zero. +**/ +@property (readwrite, assign, atomic) NSUInteger maximumNumberOfLogFiles; + +/** + * The maximum space that logs can take. On rolling logfile all old logfiles that exceed logFilesDiskQuota will + * be deleted. + * + * You may optionally disable this option by setting it to zero. +**/ +@property (readwrite, assign, atomic) unsigned long long logFilesDiskQuota; + +// Public methods + +- (NSString *)logsDirectory; + +- (NSArray *)unsortedLogFilePaths; +- (NSArray *)unsortedLogFileNames; +- (NSArray *)unsortedLogFileInfos; + +- (NSArray *)sortedLogFilePaths; +- (NSArray *)sortedLogFileNames; +- (NSArray *)sortedLogFileInfos; + +// Private methods (only to be used by DDFileLogger) + +- (NSString *)createNewLogFile; + +@optional + +// Notifications from DDFileLogger + +- (void)didArchiveLogFile:(NSString *)logFilePath; +- (void)didRollAndArchiveLogFile:(NSString *)logFilePath; + +@end + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Default log file manager. + * + * All log files are placed inside the logsDirectory. + * If a specific logsDirectory isn't specified, the default directory is used. + * On Mac, this is in ~/Library/Logs/. + * On iPhone, this is in ~/Library/Caches/Logs. + * + * Log files are named "